我在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"

10-05 20:43
查看更多