expandableListView,group和child都是动态生成的,每一个child都是自己写的layout,例如:一个child为一个RadioGroup,点击一个radiobutton 其值显示在group的textview中 现在出现一个问题 点击了能显示,但是当点击另一个groupItem时 报空指针异常,或者点击其他group时,在点击写好的radioGroup那个groupItem报空指针异常 我的代码如下:
else if (groupPosition == 1) {
// 单选框
if (convertView == null)
convertView = mChildInflater.inflate(R.layout.time_settings_layout,null);
final RadioGroup radioGroup = (RadioGroup) convertView.findViewById(R.id.timesetting);
final RadioButton radioButton1 = (RadioButton) convertView.findViewById(R.id.threesecond);
final RadioButton radioButton2 = (RadioButton) convertView.findViewById(R.id.fivesecond);
final RadioButton radioButton3 = (RadioButton) convertView.findViewById(R.id.sevensecond);
final List<RadioButton> radios = new ArrayList<RadioButton>();
radios.add(radioButton1);
radios.add(radioButton2);
radios.add(radioButton3);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
for(int i = 0; i < radios.size(); i++){
if(radios.get(i).getId() == checkedId){
getGroup(1).setDownMessage(radios.get(i).getText().toString());
notifyDataSetChanged();
}
}
}
});
return convertView;报错:12-18 10:35:55.920: ERROR/AndroidRuntime(8722): at com.cn.adapter.SettingListAdapter.getChildView(SettingListAdapter.java:222)
12-18 10:35:55.920: ERROR/AndroidRuntime(8722): at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:450)
12-18 10:35:55.920: ERROR/AndroidRuntime(8722): at android.widget.AbsListView.obtainView(AbsListView.java:2012)
。。求指点啊 谢谢
else if (groupPosition == 1) {
// 单选框
if (convertView == null)
convertView = mChildInflater.inflate(R.layout.time_settings_layout,null);
final RadioGroup radioGroup = (RadioGroup) convertView.findViewById(R.id.timesetting);
final RadioButton radioButton1 = (RadioButton) convertView.findViewById(R.id.threesecond);
final RadioButton radioButton2 = (RadioButton) convertView.findViewById(R.id.fivesecond);
final RadioButton radioButton3 = (RadioButton) convertView.findViewById(R.id.sevensecond);
final List<RadioButton> radios = new ArrayList<RadioButton>();
radios.add(radioButton1);
radios.add(radioButton2);
radios.add(radioButton3);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
for(int i = 0; i < radios.size(); i++){
if(radios.get(i).getId() == checkedId){
getGroup(1).setDownMessage(radios.get(i).getText().toString());
notifyDataSetChanged();
}
}
}
});
return convertView;报错:12-18 10:35:55.920: ERROR/AndroidRuntime(8722): at com.cn.adapter.SettingListAdapter.getChildView(SettingListAdapter.java:222)
12-18 10:35:55.920: ERROR/AndroidRuntime(8722): at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:450)
12-18 10:35:55.920: ERROR/AndroidRuntime(8722): at android.widget.AbsListView.obtainView(AbsListView.java:2012)
。。求指点啊 谢谢
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
for(int i = 0; i < radios.size(); i++){
if(radios.get(i).getId() == checkedId){
String radioText = radios.get(i).getText().toString();
getGroup(1).setDownMessage(radioText);
notifyDataSetChanged();
}
}
}
});
return convertView;
SettingListAdapter.java有点大 目前数据都在里面
// 单选框
if (convertView == null)
convertView = mChildInflater.inflate(R.layout.time_settings_layout,null);
final RadioGroup radioGroup = (RadioGroup) convertView.findViewById(R.id.timesetting);
final RadioButton radioButton1 = (RadioButton) convertView.findViewById(R.id.threesecond);
final RadioButton radioButton2 = (RadioButton) convertView.findViewById(R.id.fivesecond);
final RadioButton radioButton3 = (RadioButton) convertView.findViewById(R.id.sevensecond);
final List<RadioButton> radios = new ArrayList<RadioButton>();
radios.add(radioButton1);
radios.add(radioButton2);
radios.add(radioButton3);
System.out.println("RadioGroup......");
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
for(int i = 0; i < radios.size(); i++){
if(radios.get(i).getId() == checkedId){
String radioText = radios.get(i).getText().toString();
getGroup(1).setDownMessage(radioText);
notifyDataSetChanged();
}
}
}
});
return convertView;
报错行红色标注了
有没有执行!
循环添加是指? 我是将radiobutton一起加进RadioGroup中 ,监听的radiogroup的CheckedChange。。 找不出原因啊
建议你按照它运行的流程,一步步的观察,多用sysout打印一些信息,学长只能帮你到这儿了,不好意思!~