Android 带有EditText:Focus的自定义Listview

Android 带有EditText:Focus的自定义Listview,android,listview,focus,Android,Listview,Focus,我有一个带有EditText和Listview的简单布局。实现了自定义ArrayList适配器,用于填充listview和自定义筛选器,以便用户可以搜索listview中显示的项目 运行应用程序时,焦点最初设置为EditText,键盘按预期显示。但我想做的是: 启动应用程序时,焦点最初应设置为ListView 如果用户希望通过选择edittext控件输入文本,则应显示键盘 (此时,当用户输入文本时,listview项将发生更改-我已经实现了这一点) 在键盘仍然打开的情况下,如果用户在listvi

我有一个带有EditText和Listview的简单布局。实现了自定义ArrayList适配器,用于填充listview和自定义筛选器,以便用户可以搜索listview中显示的项目

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

  • 启动应用程序时,焦点最初应设置为ListView
  • 如果用户希望通过选择edittext控件输入文本,则应显示键盘
  • (此时,当用户输入文本时,listview项将发生更改-我已经实现了这一点)
  • 在键盘仍然打开的情况下,如果用户在listview中选择了一个项目,键盘将消失并触发listview onItemClick功能

  • 如何完成此操作?

    1.在布局xml中为特定的
    EditText
    添加以下属性:

    android:focusable="false"
    android:focusableInTouchMode="true"
    
    2.然后在您的
    活动中添加:

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

    希望这有帮助。

    此链接可能会帮助您相关:谢谢。使用上述解决方案,EditText根本无法获得焦点。无法单击它并获取键盘。