我正在使用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>
請讓我知道,如果我需要在這裏發佈的Java代碼。
讓你的EditText點擊虛假和的onclick設置監聽到它。這會幫助你。試着讓我知道 –
剛編輯它並添加'android:focusableInTouchMode =「false」'讓我測試一下,之後我也會用你的建議,非常感謝你回覆我。 –
@RakshitNawani'android:focusableInTouchMode =「false」'解決了我的問題。 –