5

カスタム アイテムを含む ListActivity があり、すべてのアイテムに独自の TextEdit があります。それらのいずれかをテーピングすると、IME キーボードが表示され、ListView のサイズが変更されます。そのため、最近タップでフォーカスを取得した EditText はフォーカスを失います。フォーカスまたは確認するには、2 回目のタップが必要です。リストに1つ以上のアイテムを移動した場合にのみ発生します。

ワンタップで IME を開いて EditText にフォーカスしたままにする方法はありますか?

4

2 に答える 2

0

リストのサイズを変更しますか? ListView.onSizeChanged をオーバーライドして、それを super.onSizeChanged に「バブリング」する代わりに消費できますか (エラー ソースに関する仮定が正しいと仮定します)。

于 2011-01-17T10:44:13.793 に答える
0

タップされた EditText を変数に格納し、遅延後にフォーカスを要求することでこれを解決しました。これはハックですが、Android にはハックが必要な場合があります。

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    public void run() {
        EditText editText = getListAdapter().tappedEditText;
        if (editText != null) {
            editText.requestFocus();
        }
    }
}, 100);
于 2012-04-18T15:32:55.617 に答える