2016-03-02 12 views
5

Sto usando il selettore del materialdatetime per creare un modulo. Se sto usando TextView, sta funzionando bene, ma voglio usare EditText per questo, sto caricando l'immagine che puoi vedere se sto usando EditText come appare e se sto usando TextView come sembra. Ma quando usi EditText Devo fare clic due volte per aprire DatePicker. Per il primo clic si comporta come una casella di testo modificabile.Come posso usare EditText invece di TextView e aprire datePicker con un solo clic?

<!-- 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> 

enter image description here

Per favore fatemi sapere, se ho bisogno di inviare il codice Java qui.

+0

rendere il vostro EditText cliccabile falsa e impostare onclick ascoltatore ad esso. Questo ti aiuterà. Prova e fammi sapere –

+0

Modificato e aggiungi 'android: focusableInTouchMode =" false "' fammelo testare e dopo utilizzerò anche il tuo suggerimento, grazie mille per avermi risposto. –

+0

@RakshitNawani 'android: focusableInTouchMode =" false "' risolto il mio problema. –

risposta

8

messo

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

nel modificare il testo

+0

Grande, non ho usato 'android: focusable =" false "' e prima della tua risposta modificato e aggiunto 'android: focusableInTouchMode =" false "' e funziona bene, comunque grazie mille. Per favore fatemi sapere , se il mio xml è sbagliato, dato che sono troppo nuovo per Android, non so, se lo sto facendo in modo corretto. –

+0

tutto il resto sembra buono tranne linearlayout con id check_chosen. Puoi eliminarlo perché il layout principale ha già un orientamento verticale. –

+0

grazie mille Ankit :) –

3

È possibile utilizzare EditText per raggiungere la vostra esigenza. In primo luogo fare come questo

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

inoltre è possibile farlo dal codice per nascondere modificabile come questo

edTxt.setClickable(false); 

Ora Applicare OnClickListener su questo edtxt e aperto DatePicker o quello che vuoi.

prega di notare che setClickable = "false" nel file XML dove sei definizione del vostro EditText

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

1

si può raggiungere, rendendo focusable false.

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

Nella tua modifica del testo provare questo

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

Scusa ma per la tua soluzione sto ricevendo 'Errore: (182) No identificatore di risorsa trovato per l'attributo 'endabled' nel pacchetto 'android'', in qualsiasi modo tu possa vedere, ho risolto il mio problema e spero che possa esserti d'aiuto anche a te. –

+0

ohh ... scusa il mio errore ..in realtà funziona per com.wrapp.floatlabelededittext.FloatLabeledEditText – PpL

+1

Puoi modificare la tua risposta e descrivere la situazione per cui funziona e rispondere a questa domanda, non ho votato, non ti preoccupare. :) –

0

Mettere le righe qui sotto nella tua modificare il testo:

android:editable="false" 
android:focusableInTouchMode="false" 
Problemi correlati