4

我有一个带有 EditText 和 Listview 的简单布局。实现了自定义 ArrayList 适配器以填充列表视图和自定义过滤器,以便用户可以搜索列表视图中显示的项目。

当我运行应用程序时,焦点最初设置为 EditText,键盘按预期显示。但这是我想做的:

  1. 启动应用程序时,焦点最初应设置为 ListView。
  2. 如果用户想通过选择edittext 控件来输入文本,那么应该会出现键盘。
  3. (此时,当用户输入文本时,列表视图项将发生变化 - 我已经实现了这一点)
  4. 在键盘仍然打开的情况下,如果用户在列表视图中选择了一个项目,键盘应该会消失并触发列表视图的 onItemClick 函数。

我怎样才能做到这一点?

4

1 回答 1

1

EditText1.在其 layout-xml 中将以下属性添加到您的特定属性:

android:focusable="false"
android:focusableInTouchMode="true"

2.然后在你的Activity添加:

mEditText.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        v.setFocusable(true);
        return false;
    }
});

希望这可以帮助。

于 2012-10-31T07:10:56.907 回答