我如何使用 EditText 而不是 TextView 并单击一次打开 datePicker?
How I can use EditText instead of TextView and open the datePicker in a single click?
我正在使用 materialdatetime 选择器来创建表单。如果我正在使用 TextView,它运行良好,但我想为其使用 EditText,我正在上传图像,您可以看到我是否正在使用 EditText,它看起来如何,如果我正在使用 TextView,它是如何 looks.But使用 EditText 我需要单击两次才能打开 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>
如果我需要 post 此处的 java 代码,请告诉我。
放
android:focusable="false"
android:focusableInTouchMode="false"
在您的编辑文本中
更新
添加
android:longClickable="false"
您可以使用EditText 来实现您的要求。首先这样做
EditText edTxt;
edTxt = (TextView) row.findViewById(R.id.acti_edtTxt_date);
您也可以通过代码隐藏可编辑的内容,像这样
edTxt.setClickable(false);
现在在此 edTxt 上应用 OnClickListener 并打开 DatePicker 或您想要的。
请注意,您所在的 xml 文件中的 setClickable = "false "
定义你的 EditText
<EditText ...
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false">
你可以通过focusable false
来实现它。
<EditText ...
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false">
在你的编辑文本中试试这个
android:editable="false"
android:enabled="true"
将以下行放入您的编辑文本中:
android:editable="false"
android:focusableInTouchMode="false"
我正在使用 materialdatetime 选择器来创建表单。如果我正在使用 TextView,它运行良好,但我想为其使用 EditText,我正在上传图像,您可以看到我是否正在使用 EditText,它看起来如何,如果我正在使用 TextView,它是如何 looks.But使用 EditText 我需要单击两次才能打开 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>
如果我需要 post 此处的 java 代码,请告诉我。
放
android:focusable="false"
android:focusableInTouchMode="false"
在您的编辑文本中
更新
添加
android:longClickable="false"
您可以使用EditText 来实现您的要求。首先这样做
EditText edTxt;
edTxt = (TextView) row.findViewById(R.id.acti_edtTxt_date);
您也可以通过代码隐藏可编辑的内容,像这样
edTxt.setClickable(false);
现在在此 edTxt 上应用 OnClickListener 并打开 DatePicker 或您想要的。
请注意,您所在的 xml 文件中的 setClickable = "false " 定义你的 EditText
<EditText ...
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false">
你可以通过focusable false
来实现它。
<EditText ...
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false">
在你的编辑文本中试试这个
android:editable="false"
android:enabled="true"
将以下行放入您的编辑文本中:
android:editable="false"
android:focusableInTouchMode="false"