最近刚学安卓开发,遇到一个大问题,凡是用到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;
        }
    }
}

解决方案 »

  1.   

    你expandableAdapter里的childName和groupName怎么初始化的?
    贴的代码不完整,问题没法定位
      

  2.   

    LayoutInflater.from(viewGroup.getContext())  最好不要这样写,可以写一个构造函数,传入当SecondActivity.this来作为context。
      

  3.   

    改成用Context定义的activity还是不行,错误显示:
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
    请问是很么原因?
      

  4.   

    你的Imageview没初始化吧!!!!!!!
      

  5.   

    你的Imageview没初始化吧!!!!!!!