我正在实施一个应用程序,您可以在左侧选择不同的选项,并将它们添加到右侧的main_fragment中。情况就是这样:
使用此代码可以正常工作:
public View getGroupView(int i, boolean b, View view){
TextView textview = new TextView(MyFragment.this.getActivity());
textview.setText("smth");
return textview;}
但是我的textview旁边需要一个复选框。现在,有几种方法可以做到这一点,但不幸的是,没有一种方法可以在点击时提供相同的结果:expand!
这是在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;
请注意,我缩短了代码,以便于阅读。 在建议中感谢!
答案 0 :(得分:1)
默认情况下,复选框会捕获其父布局的所有焦点事件。因此,要使布局处理单击事件(包括展开),您需要将复选框焦点设置为false:
XML布局:
android:focusable="false"
来自JAVA代码:
checkBox.setFocuseble(false);