2016-03-02 14 views
5

Form oluşturmak için materialdatetime seçicisini kullanıyorum. TextView kullanıyorum, iyi çalışıyor, ama ben bunun için EditText kullanmak istiyorum, ben EditText kullanarak nasıl göründüğümü ve TextView kullanarak nasıl göründüğünü görebiliyorsunuz resmi yüklüyorum.Ama EditText kullanırken DatePicker'ı açmak için iki kez tıklamam gerekiyor. İlk tıklama için düzenlenebilir bir metin kutusu gibi davranır. TextView yerine EditText'i nasıl kullanabilirim ve datePicker'ı tek tıklamayla nasıl açabilirim?

enter image description here

<!-- Adding Payment Method progress --> 
    <ProgressBar 
     android:id="@+id/payment_method_progress" 
     style="?android:attr/progressBarStyleLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp" 
     android:visibility="gone" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/adding_payment_method_heading" 
     android:textSize="@dimen/activity_heading" 
     android:elevation="0dp" 
     android:layout_marginBottom="@dimen/activity_vertical_margin" 
     /> 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/adding_payment_method_description" 
     android:textSize="@dimen/activity_description" 
     android:elevation="0dp" 
     android:layout_marginBottom="@dimen/activity_vertical_margin" 
     /> 

    <ScrollView 
     android:id="@+id/adding_payment_method_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:id="@+id/adding_payment_method_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/layout_user_id" 
       > 

       <EditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/enter_user_name" 
        android:inputType="text" 
        android:maxLines="1" 
        android:singleLine="true" 
        android:id="@+id/user_id" /> 
      </android.support.design.widget.TextInputLayout> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="left" 
        android:layout_weight="1" 
        android:text="Select Payment Methods" /> 

       <Spinner 
        android:id="@+id/payment_methods" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="right" 
        android:layout_weight="1" /> 
      </LinearLayout> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:id="@+id/check_chosen" 
       > 

      <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/layout_amount" 
       > 

       <EditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/amount" 
        android:inputType="numberDecimal" 
        android:maxLines="1" 
        android:singleLine="true" 
        android:id="@+id/amount" /> 
      </android.support.design.widget.TextInputLayout> 

      <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/layout_check_number" 
       > 

       <EditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/check_number" 
        android:inputType="number" 
        android:maxLines="1" 
        android:singleLine="true" 
        android:id="@+id/check_number" /> 
      </android.support.design.widget.TextInputLayout> 

      <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/layout_bank_name" 
       > 

       <EditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/bank_name" 
        android:inputType="text" 
        android:maxLines="1" 
        android:singleLine="true" 
        android:id="@+id/bank_name" /> 
      </android.support.design.widget.TextInputLayout> 


       <android.support.design.widget.TextInputLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/date_of_check" 
        android:layout_weight="1" 
        > 
        <EditText 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:id="@+id/check_date" 
         android:hint="Date" 
         android:inputType="date" /> 
       </android.support.design.widget.TextInputLayout> 
      </LinearLayout> 

      <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/layout_payment_info" 
       > 

       <EditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/payment_info" 
        android:inputType="text" 
        android:maxLines="1" 
        android:singleLine="true" 
        android:id="@+id/payment_info" /> 
      </android.support.design.widget.TextInputLayout> 

       <TextView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/payment_date" 
        android:hint="@string/payment_date" 
        android:inputType="date" /> 

      <Button 
       android:id="@+id/add_payment_method_action" 
       style="?android:textAppearanceSmall" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="16dp" 
       android:text="@string/submit" 
       android:onClick="testSubmit" 
       android:textStyle="bold" /> 


    </LinearLayout> 
    </ScrollView> 
</LinearLayout> 

Burada java kodu yazmak için gerekiyorsa bana, bildirin.

+0

sizin EditText tıklanabilir yanlış ve buna dinleyici onclick set yapın. Bu sana yardım edecek. Deneyin ve bana bildirin –

+0

Sadece düzenledim ve 'android: focusableInTouchMode =" false "' da test edeyim ve bundan sonra da öneriyi kullanacağım, bana cevap verdiğiniz için çok teşekkür ederim. –

+0

@RakshitNawani' android: focusableInTouchMode = "false" 'sorunumu çözdü. –

cevap

8

Düzenleme metni

+0

Harika, ben android: focusable = "false" 'yi kullanmadım ve cevabınız düzenlenmeden önce ve android eklendi: focusableInTouchMode =" false "' ve iyi çalışıyor, yine de çok teşekkür ederim. eğer xml'm yanlışsa, android için çok yeni olduğumdan, bunu doğru şekilde yapıyorsam, bilmiyorum. –

+0

her şey id check_chosen ile linearlayout dışında iyi görünüyor. Ebeveyn düzeni zaten dikey yönlendirmeye sahip olduğundan bunu ortadan kaldırabilirsiniz. –

+0

çok teşekkür ederim Ankit :) –

3

Eğer ihtiyaç ulaşmak için EditText kullanabilirsiniz içinde

android:focusable="false" 
android:focusableInTouchMode="false" 

koydu. Bu

EditText edTxt; 
edTxt = (TextView) row.findViewById(R.id.acti_edtTxt_date); 

Ayrıca Şimdi bu

edTxt.setClickable(false); 

gibi düzenlenebilir gizlemek Bu edTxt ve açık DatePicker ya da ne istediğiniz üzerine OnClickListener Başvurulur koddan bunu yapabilir gibi Öncelikle yapın.

o size EditText

<EditText ... 
    android:clickable="false" 
    android:cursorVisible="false" 
    android:focusable="false" 
    android:focusableInTouchMode="false"> 

1

tanımlayan olan setClickable xml dosyasında = "false" Bunu focusable false yaparak bunu elde edebilirsiniz unutmayınız. Düzenleme Metinde

<EditText ... 
    android:cursorVisible="false" 
    android:focusable="false" 
    android:focusableInTouchMode="false"> 
0

bu

android:editable="false" 
android:enabled="true" 
+0

Üzgünüm ama çözümün için" Hata alıyorum: (182) Hayır 'android' paketindeki 'endabled' özniteliği için bulunan kaynak tanımlayıcı, gördüğünüz herhangi bir şekilde, sorunumu çözdüm ve umarım bu da size yardımcı olacaktır. –

+0

ohh ... üzgünüm hatam ..aslında com.wrapp.floatlabelededittext.FloatLabeledEditText – PpL

+1

için çalışır Cevabını düzenlemek ve bu soru için çalıştığını hangi durum ve cevap tanımlayabilir, ben seni oy vermediniz, endişelenmeyin. :) –

0

Düzenleme metinde aşağıda satırları koyun deneyin:

android:editable="false" 
android:focusableInTouchMode="false" 
İlgili konular