我有一个editText,我想自动填写表单中其他控件的信息,同时允许更改其内容,但不鼓励用户这样做。
所以我将此控件设置为不可聚焦,因此当您按下actionNext时,它会移动到下一个控件。但是,如果单击编辑文本,我想允许用户更改其内容。
这就是我所做的:
mNameEditText.setFocusable(false);
mNameEditText.setFocusableInTouchMode(false);
mNameEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mNameEditText.setFocusableInTouchMode(true);
mNameEditText.requestFocusFromTouch();
mNameEditText.setFocusable(true);
}
});
然而,这非常奇怪,结果是当你点击时,你可以编辑,但突然下一个控件(一个AutoCompleteTextView)不再可调焦了!实际上看起来焦点仍然在编辑文本上并同时转到autocompletetextview,如下所示:
我该如何解决这个问题?
答案 0 :(得分:1)
enabled
属性设置为false
答案 1 :(得分:0)
如果您希望自动焦点更改跳过某些视图,则可以使用nextFocus*
属性的组合。
类似的东西:
<EditText
android:id="@+id/txt1"
android:imeOptions="actionNext"
android:nextFocusForward="@+id/txt3"
android:nextFocusDown="@+id/txt3"
... />
<!-- skipped view -->
<EditText
android:id="@+id/txt2"
android:imeOptions="actionNext"
... />
<EditText
android:id="@+id/txt3"
android:imeOptions="actionNext"
android:nextFocusUp="@id/txt1"
... />
nextFocusForward
用于actionNext
。我相信其他属性在非触摸模式下非常有用(例如使用硬件键盘)