从我的MainView
(ExpandableListView
)我得到RadioButton
已定义child_row.xml
,我设置了侦听器,但OnCheckChanged
未被调用。如果我将RadioButton
移动到currentview,它就会被调用。
我该如何解决这个问题?
我有......
→
public class Main_ListView extends Activity implements OnCheckedChangeListener{
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
setContentView(R.layout.mainListView);
ExpandableListView elv = (ExpandableListView) findViewById(R.id.expandableListView1);
SimpleExpandableListAdapter expListAdapter =
new SimpleExpandableListAdapter(
getApplicationContext(),
createGroupList(), // Creating group List.
R.layout.group_row, // Group item layout XML.
new String[] { "Group Item" }, // the key of group item.
new int[] { R.id.row_name }, // ID of each group item.-Data under the key goes into this TextView.
createChildList(), // childData describes second-level entries.
R.layout.child_row, // Layout for sub-level entries(second level).
new String[] {"Sub Item"}, // Keys in childData maps to display.
new int[] { R.id.grp_child} // Data under the keys above go into these TextViews.
);
elv.setAdapter(expListAdapter); // setting the adapter in the list.
}catch(Exception e){
System.out.println("Errrr +++ " + e.getMessage());
}
final LayoutInflater factory = getLayoutInflater();
final View childview = factory.inflate(R.layout.child_row, null);
answersGroup = (SegmentedRadioGroup) childview.findViewById(R.id.answersGroup);
if(answersGroup != null)
answersGroup.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (group == answersGroup) {
if (checkedId == R.id.radio0) {
mToast.setText("One");
mToast.show();
} else if (checkedId == R.id.radio1) {
mToast.setText("Two");
mToast.show();
} else if (checkedId == R.id.radio2) {
mToast.setText("Three");
mToast.show();
}
}
}
答案 0 :(得分:0)
您没有提供您使用的完整代码。如果您稍后将那个膨胀的 childView 添加到Activity
的布局中,那么您应该提供主要布局,看看您是否以某种方式阻止了CheckBox
。如果你只是夸大了布局,那么你没有得到被检查的事件是正常的,因为 childView 不在屏幕上的任何位置。
从代码的外观来看,您似乎想要为CheckBox
的子级中的ExpandableListView
设置一个侦听器。如果这是你想要的,那么这是一次不正确的尝试,而这样做的方法是为ExpandableListView
使用自定义适配器。这里有很多教程(和问题),用于构建自定义适配器并将侦听器设置为子元素。