最近刚学安卓开发,遇到一个大问题,凡是用到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;
}
}
}
下面是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;
}
}
}
贴的代码不完整,问题没法定位
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference
请问是很么原因?