2016-03-02 63 views
5

我正在使用materialdatetime選擇器來創建表單。如果我使用的是TextView,但它運行良好,但我想爲它使用EditText,我正在上傳圖像,您可以看到如果我使用EditText的外觀以及是否使用TextView的外觀。但是使用EditText我需要點擊兩次以打開DatePicker。首先點擊它的行爲就像一個可編輯的文本框。如何使用EditText代替TextView並在單擊中打開datePicker?

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

請讓我知道,如果我需要在這裏發佈的Java代碼。

+0

讓你的EditText點擊虛假和的onclick設置監聽到它。這會幫助你。試着讓我知道 –

+0

剛編輯它並添加'android:focusableInTouchMode =「false」'讓我測試一下,之後我也會用你的建議,非常感謝你回覆我。 –

+0

@RakshitNawani'android:focusableInTouchMode =「false」'解決了我的問題。 –

回答

8

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

在編輯文本

+0

好的,我沒有使用'android:focusable =「false」'並且在你的回答編輯並添加'android:focusableInTouchMode =「false」'之前它運行正常,反正非常感謝你。請你讓我知道,如果我的xml是錯誤的,因爲我對android過於陌生,不知道,如果我以正確的方式做。 –

+0

其他一切看起來都不錯,除了id爲check_chosen的linearlayout。您可以消除這種情況,因爲父級佈局已經具有垂直方向。 –

+0

非常感謝你Ankit :) –

3

可以使用的EditText來實現您的要求。首先做這樣

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

您也可以從代碼這樣做是爲了隱藏編輯這樣

edTxt.setClickable(false); 

立即申請OnClickListener這個edTxt和開放的DatePicker或你想要什麼。

請注意,setClickable在XML文件= 「假」,你是 定義你的EditText

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

1

您可以通過它focusable false實現它。

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

在你編輯短信試試這個

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

對不起,但是對於你的解決方案我得到了'錯誤:(182)否在'android''包中找到屬性'endabled'的資源標識符,任何你能看到的方式,我已經解決了我的問題,我希望這也能對你有所幫助。 –

+0

ohh ...對不起我的錯誤..其實它適用於com.wrapp.floatlabelededittext.FloatLabeledEditText – PpL

+1

你可以編輯你的答案,並描述它的工作情況和回答這個問題,我還沒有投票給你,不用擔心。 :) –

0

把線下方在編輯文本:

android:editable="false" 
android:focusableInTouchMode="false" 
相關問題