1

カスタム グループ レイアウトを作成した拡張可能な ListView を作成しました。

グループ レイアウトでは、右側に EditText を作成しました。EditText にテキストを入力して展開可能なリストをクリックすると、リストが展開/折りたたまれません。

EditText の focusable false を実行すると、リストが展開/折りたたみされます。

この問題を解決するには?私に提案してください。

4

2 に答える 2

1

今日、私は拡張可能なリストとNレベルの拡張可能なリストビューで上記の問題を解決しました。コードを添付しました。まず、EditTextのxmlではなく、アクティビティ/アダプターに編集テキストのフォーカス可能なfalseを設定しました。

EditText.setFocusable(false);

次に、編集テキストにフォーカス可能なtrueを設定したため、タッチリスナーを使用しました。これにより、編集ボックスにテキストを簡単に入力できます。

EditText.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                EditText.setFocusableInTouchMode(true);
                return false;
            }
        });

その後、KeyListenerを使用しました。これは、位置/グループの位置に応じてデータを取得し、ハッシュマップに値を設定するためです。これにより、2レベルまたはNレベルの拡張可能なリストビューをクリックしても、データは変更されません。展開可能なリストビューでは非常に重要です。完了したキーを押すと、キーボードが非表示になります。また、編集テキストのフォーカス可能なfalseを設定して、自由に展開/折りたたみできるようにします。

EditText.setOnKeyListener(new OnKeyListener() {
            String editValue;
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
                {
                    editValue=groupHolder.numberEdit.getText().toString().trim();
                    EditText.setFocusable(false);
                    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY,0);
                }
                setEditValueHashMap.put(groupPosition, editValue);
                return false;
            }
        });
于 2013-02-14T11:40:04.647 に答える
1

Edit Text は、それ自体がフォーカス可能なコンポーネントです。リスト ビューの展開可能なリスト内に配置すると、リストのクリックと折りたたみの展開プロパティが機能しません。EditText、Button、ImageButtonなどを使用した場合も同様の問題が発生しましたが、

したがって、次を使用する必要があります。

1. Expandable List で次のプロパティを使用します。

 android:descendantFocusability="blocksDescendants"

または 2. EditText で次のプロパティを使用します。

android:focusable="false"
于 2013-02-08T10:57:10.917 に答える