我有一个像AppCompatEditText这样的TextInputLayout
<RelativeLayout
android:id="@+id/rv_from_date_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp">
<android.support.design.widget.TextInputLayout
android:id="@+id/edt_from_date_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"
android:layout_toStartOf="@+id/iv_from_date_picker"
android:fontFamily="sans-serif-light"
android:textColor="@color/colorPrimary"
android:textColorHint="@color/colorPrimary"
android:theme="@style/TextLabelDark"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/colorPrimary">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/edt_from_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="From Date"
android:maxLines="1"
android:textColor="@color/colorPrimary"
android:textColorHint="@color/colorPrimary"
android:textCursorDrawable="@null"
app:backgroundTint="@color/colorPrimary" />
</android.support.design.widget.TextInputLayout>
<ImageView
android:id="@+id/iv_from_date_picker"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:padding="8dp"
android:src="@drawable/date_range" />
</RelativeLayout>
点击AppCompatEditText后,我需要显示日期选择器。但我不希望键盘弹出。
我尝试了以下内容:
1. edt_from_date.setEnabled(false);
2. edt_from_date.setKeyListener(null);
3. rv_from_date_holder.setOnclickListener()//Also didn't worked
如果我禁用我无法弹出日期选择器。 如果我将setKeyListener设置为null,那么我需要点击两次以获取日期选择器。
答案 0 :(得分:1)
你应该添加
机器人:可聚焦=&#34;假&#34;
<android.support.v7.widget.AppCompatEditText
android:id="@+id/edt_from_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="From Date"
android:maxLines="1"
android:focusable="false"
android:textColor="@color/colorPrimary"
android:textColorHint="@color/colorPrimary"
android:textCursorDrawable="@null"
app:backgroundTint="@color/colorPrimary" />
内部活动/片段集
onClickListener
答案 1 :(得分:0)
试一下,它一定会帮到你
// disable keyboard on editext on touch listener
editText.setOnTouchListener(otl);
private OnTouchListener otl = new OnTouchListener() {
public boolean onTouch (View v, MotionEvent event) {
return true; // the listener has consumed the event
}
};
//在这里打开日期选择器
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// open your date picker here
}
});
答案 2 :(得分:0)
您可以将此编辑文本设置为edt_from_date.setEnabled(false);
,而不是您设置启用编辑文本为false,您可以edt_from_date.setEditable(false);
禁止编辑文字的编辑,然后您仍然可以setOnClickListener()
而不显示键盘
答案 3 :(得分:0)
将以下代码放入xml
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_marginTop="5dp"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:maxLines="1"
android:imeOptions="actionDone"
android:inputType="text"
android:focusable="false"
android:fontFamily="sans-serif-condensed"
android:hint="Expiry Date"
android:layout_height="wrap_content" />
</android.support.design.widget.TextInputLayout>
android:focusable =“false”是您不希望键盘打开时需要添加的属性。
现在点击它来显示日期选择器使用下面的代码:
your_edit_text.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new DatePickerDialog(YourActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
最后编码以获取日期
myCalendar = Calendar.getInstance();
date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};
希望,这会对你有所帮助。 : - )