求助!!!android studio 的BaseAdapter问题

千羽QY 2018-08-08 10:55:14
最近刚学安卓开发,遇到一个大问题,凡是用到BaseAdaper的程序,都不能正常运行。不知道是哪里写错了,请教!
下面是ExpandableListView的程序。

public class SecondActivity extends Activity {

String[] groupName = {"初中同学","高中同学","大学同学","亲戚"};
String[][] childName = {
{"李剑凤", "张金茹", "李强", "田德旭", "谢萌萌"},
{"李文博", "谭有兰", "张玉安", "李敏", "李雪"},
{"邓清馨", "蔡畅怡", "从定烟", "李蕴奥", "刘敬贺"},
{"大姑", "小姑", "乐乐", "玉玉", "李月"},
};
String[][] childIntroduce = {
{"今天天气不错哦!","明天去游泳,有约的吗?"," ","啦啦啦~~~","最新化妆品,赶快入手!"},
{"转眼到山大三年了", "青岛的海真蓝啊!", "下次考试加油!!!!!!!!!!", " ", "考研真他妈累~"},
{"明天就要去学校了啊","山东剧场有约的吗?","","","有容奶大。。。"},
{"????", "!!!!", "。。。。", "@@@@@", "什么!?!?!?"},
};

private ExpandableListView expandableListView;
private ExpandableAdapter expandableAdapter;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

expandableListView = findViewById(R.id.expendable_listview);
expandableAdapter = new ExpandableAdapter();

expandableListView.setAdapter(expandableAdapter);
}

class ExpandableAdapter extends BaseExpandableListAdapter{

@Override
public int getGroupCount() {
return groupName.length;
}

@Override
public int getChildrenCount(int i) {
return childName[i].length;
}

@Override
public Object getGroup(int i) {
return groupName[i];
}

@Override
public Object getChild(int i, int i1) {
return childName[i][i1];
}

@Override
public long getGroupId(int i) {
return i*100;
}

@Override
public long getChildId(int i, int i1) {
return i*100+i1;
}

@Override
public boolean hasStableIds() {
return false;
}

@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {

View view1 = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.group_item,null);
TextView textView = findViewById(R.id.group_item_name);
Object text = getGroup(i);
textView.setText((String) text);

if(i%2==0){
textView.setTextColor(Color.BLUE);
}else if(i%2==1){
textView.setTextColor(Color.RED);
}

return view1;
}

@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {

View view2 = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.child_item,null);

TextView textView1 = findViewById(R.id.child_item_name);
textView1.setText(childName[i][i1]);

TextView textView2 = findViewById(R.id.child_item_introduce);
textView2.setText(childIntroduce[i][i1]);

if(i%2==0){
textView1.setTextSize(TypedValue.COMPLEX_UNIT_DIP,17);
textView2.setTextSize(TypedValue.COMPLEX_UNIT_DIP,12);
}else if(i%2==1){
textView1.setTextSize(TypedValue.COMPLEX_UNIT_DIP,20);
textView2.setTextSize(TypedValue.COMPLEX_UNIT_DIP,15);
}

return view2;
}

@Override
public boolean isChildSelectable(int i, int i1) {
return false;
}
}
}

...全文
411 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
davl 2018-08-10
  • 打赏
  • 举报
回复
有错误日志 一目了然
vinda988 2018-08-09
  • 打赏
  • 举报
回复
你的Imageview没初始化吧!!!!!!!
YXTS122 2018-08-09
  • 打赏
  • 举报
回复
你的Imageview没初始化吧!!!!!!!
游逸丶 2018-08-08
  • 打赏
  • 举报
回复
你expandableAdapter里的childName和groupName怎么初始化的?
贴的代码不完整,问题没法定位
Jing丶無雙 2018-08-08
  • 打赏
  • 举报
回复
不能正常运行具体是个什么情况??是报错闪退了么,若果是报错了,再贴一下报错日志
千羽QY 2018-08-08
  • 打赏
  • 举报
回复
改成用Context定义的activity还是不行,错误显示:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
请问是很么原因?
嘿科 2018-08-08
  • 打赏
  • 举报
回复
LayoutInflater.from(viewGroup.getContext()) 最好不要这样写,可以写一个构造函数,传入当SecondActivity.this来作为context。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧