カスタム グループ レイアウトを作成した拡張可能な ListView を作成しました。
グループ レイアウトでは、右側に EditText を作成しました。EditText にテキストを入力して展開可能なリストをクリックすると、リストが展開/折りたたまれません。
EditText の focusable false を実行すると、リストが展開/折りたたみされます。
この問題を解決するには?私に提案してください。
カスタム グループ レイアウトを作成した拡張可能な ListView を作成しました。
グループ レイアウトでは、右側に EditText を作成しました。EditText にテキストを入力して展開可能なリストをクリックすると、リストが展開/折りたたまれません。
EditText の focusable false を実行すると、リストが展開/折りたたみされます。
この問題を解決するには?私に提案してください。
今日、私は拡張可能なリストと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;
}
});
Edit Text は、それ自体がフォーカス可能なコンポーネントです。リスト ビューの展開可能なリスト内に配置すると、リストのクリックと折りたたみの展開プロパティが機能しません。EditText、Button、ImageButtonなどを使用した場合も同様の問題が発生しましたが、
したがって、次を使用する必要があります。
1. Expandable List で次のプロパティを使用します。
android:descendantFocusability="blocksDescendants"
または 2. EditText で次のプロパティを使用します。
android:focusable="false"