我在android对话框中有一个edittext(searcfield),在我完成编辑后,关闭对话框。
然后我转到其他edittext,焦点仍然在searchfield中。
知道吗?
谢谢
编辑:
这里有太多的文章要发表,希望这能帮助我理解我的问题。
客户对话框视图
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:orientation="horizontal" >
<EditText
android:id="@+id/search_field"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:inputType="textNoSuggestions|textVisiblePassword"
android:layout_weight="0.70"
android:hint="type item name to search"/>
</LinearLayout>
<ListView
android:id="@+id/itemList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#00000000"
android:descendantFocusability="beforeDescendants"
android:scrollbars="none"/>
</LinearLayout>
Java代码
View searchView = getActivity().getLayoutInflater().inflate(R.layout.search, null, false);
EditText searchField = (EditText)productEditView.findViewById(R.id.search_field);
searchField.addTextChangedListener(this);
...
public void afterTextChanged(Editable text) {
if (searchField.hasFocus()) {
Log.i("MyApp", "searchField is still focused");
return;
}
if (otherField.hasFocus()){
Log.i("MyApp", "other field");
return;
}
}
最佳答案
另一个,虽然有点老套,但我经常使用的解决方案是,如果我希望能够清除EditText的焦点()或在第一个EditText没有自动聚焦的情况下打开活动/片段,则将布局的父视图(LinearLayout、RelativeLayout等)设置为android:focusable="true"
和android:focusableInTouchMode="true"
。