4

EditText と Listview を使用した単純なレイアウトがあります。ユーザーがリストビューに表示される項目を検索できるように、リストビューとカスタム フィルターに入力するカスタム ArrayList アダプターを実装しました。

アプリケーションを実行すると、最初にフォーカスが EditText に設定され、キーボードが期待どおりに表示されます。しかし、ここに私がやりたいことがあります:

  1. アプリの起動時に、最初にフォーカスを ListView に設定する必要があります。
  2. ユーザーが edittext コントロールを選択してテキストを入力したい場合、キーボードが表示されます。
  3. (この時点で、ユーザーがテキストを入力すると、リストビューの項目が変更されます - 私はすでにこれを実装しています)
  4. キーボードが開いたままの状態で、ユーザーがリストビューで項目を選択すると、キーボードが非表示になり、リストビューの onItemClick 関数がトリガーされます。

どうすればこれを達成できますか?

4

1 に答える 1

1

1.layout EditText-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 に答える