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)
。。求指点啊 谢谢
解决方案 »
- android 在配置文件中给textview设置默认文字是“@xxxx”会报错
- 我的Android手机连接不上我的电脑
- android adb驱动安装不上,什么原因
- adb shell 找不创建的表名
- NDK下的OpenGL程序怎么显示中文?怎么去获取中文的字库?传Canvas+Paint对象到NDK层?
- android中如何将文件存储到SD卡的指定文件夹下?????
- android预处理/宏定义
- 求一本学Android比较好的书?
- 关于android项目clean一下R文件、apk文件不见问题解决
- 关于android进程保活,公司一定要实现7*24后台定位,真的能实现吗?
- android 循环播放图片
- 为什么我恢复的短信看不到?
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打印一些信息,学长只能帮你到这儿了,不好意思!~