Android:带有EditTexts的ListView混淆焦点和IME

时间:2011-01-17 05:15:22

标签: android listview focus android-edittext ime

我有自定义项的ListActivity,其中每个项目都有自己的TextEdit。 点击它们中的任何一个都会使IME键盘上升并导致ListView的大小调整。 因此,最近通过tap获得焦点的EditText失去了它。 需要第二次点击才能使其专注或确定。 只有当我移动列表中的1个项目时才会发生这种情况。

有没有办法打开IME,只用一下就能专注于EditText?

2 个答案:

答案 0 :(得分:0)

您想要调整列表的大小吗?你可以覆盖ListView.onSizeChanged并使用它而不是“冒泡”到super.onSizeChanged(假设你对错误源的假设是正确的)?

答案 1 :(得分:0)

我通过将抽头的EditText存储在变量中并在延迟后请求对其进行聚焦来解决这个问题。这是一个黑客,但有时Android需要黑客。

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    public void run() {
        EditText editText = getListAdapter().tappedEditText;
        if (editText != null) {
            editText.requestFocus();
        }
    }
}, 100);