1

左側でさまざまなオプションを選択し、右側の main_fragment に追加できるアプリを実装しています。これがケースです:

このコードを使用すると、すべて正常に動作します。

  public View getGroupView(int i, boolean b, View view){

    TextView textview = new TextView(MyFragment.this.getActivity());
    textview.setText("smth");

  return textview;}

しかし、テキストビューの横にチェックボックスが必要です。現在、これを行う方法はいくつかありますが、残念ながら、クリックで同じ結果が得られるものはありません。

LinearLayout に TextView と CheckBox を持つ単純な XML 要素を使用した最初の可能性を次に示します。

LayoutInflater inflater =  (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);           
    view = inflater.inflate(R.layout.element, null);
    TextView textview = ((TextView) view.findViewById(R.id.textview01));
    textview.setText("smth");

    CheckBox cb = ((CheckBox) view.findViewById(R.id.checkbox01));
return view;

またはプログラムでビューを追加します。

LinearLayout ln = new LinearLayout(MyFragment.this.getActivity());
TextView textview = new Textview(MyFragment.this.getActivity());
textview.setText("smth");
CheckBox cb = new Checkbox(MyFragment.this.getActivity());
ln.addView(textview);
ln.addView(cb);

return ln;

読みやすくするためにコードを短くしたことに注意してください。アドバイスありがとう!

4

1 に答える 1

1

デフォルトでは、チェックボックスはその親レイアウトのすべてのフォーカス イベントをキャッチします。そのため、レイアウトでクリック イベント (展開を含む) を処理するには、チェックボックスのフォーカス可能性を false に設定する必要があります:
XML レイアウト:

android:focusable="false"

JAVA コードから:

checkBox.setFocuseble(false);
于 2013-10-22T12:41:07.233 に答える