本人看了好几天了,一直找不到问题啊,请高手指点一下。
public class ViewItemClass {
String heroName;
String dowerDj;
int pic;
int type;
boolean separator;
}
public class MainActivity extends Activity {
private List<ViewItemClass> list;
private HeroAdapter adapter;
private ListView mListview;
private ViewItemClass itemClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
String[] dower = getResources().getStringArray(R.array.dower);
String[] name;
TypedArray typedArray = null;
TypedArray typedArray1 = null;
int titleLength;
name = getResources().getStringArray(R.array.johanna);
//图片
typedArray = getResources().obtainTypedArray(R.array.pic_johanna);
titleLength = typedArray.length();
//能否分割线
typedArray1 = getResources().obtainTypedArray(R.array.separator_johanna);
for (int index = 0; index < titleLength; index++) {
itemClass = new ViewItemClass();
itemClass.heroName = name[index];
itemClass.pic = typedArray.getResourceId(index, 0);
itemClass.separator = typedArray1.getBoolean(index, true);
if (index < 6)
itemClass.dowerDj = dower[index];
else
itemClass.dowerDj = null;
if (itemClass.separator)
itemClass.type = 1;
else
itemClass.type = 0;
list.add(itemClass); //本人设了断点,第一次for循环运行到这里的时候 程序就要报错,停止运行了。
}
mListview = (ListView) findViewById(R.id.listview);
adapter = new HeroAdapter(this, list);
mListview.setAdapter(adapter);
}
}
public class ViewItemClass {
String heroName;
String dowerDj;
int pic;
int type;
boolean separator;
}
public class MainActivity extends Activity {
private List<ViewItemClass> list;
private HeroAdapter adapter;
private ListView mListview;
private ViewItemClass itemClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
String[] dower = getResources().getStringArray(R.array.dower);
String[] name;
TypedArray typedArray = null;
TypedArray typedArray1 = null;
int titleLength;
name = getResources().getStringArray(R.array.johanna);
//图片
typedArray = getResources().obtainTypedArray(R.array.pic_johanna);
titleLength = typedArray.length();
//能否分割线
typedArray1 = getResources().obtainTypedArray(R.array.separator_johanna);
for (int index = 0; index < titleLength; index++) {
itemClass = new ViewItemClass();
itemClass.heroName = name[index];
itemClass.pic = typedArray.getResourceId(index, 0);
itemClass.separator = typedArray1.getBoolean(index, true);
if (index < 6)
itemClass.dowerDj = dower[index];
else
itemClass.dowerDj = null;
if (itemClass.separator)
itemClass.type = 1;
else
itemClass.type = 0;
list.add(itemClass); //本人设了断点,第一次for循环运行到这里的时候 程序就要报错,停止运行了。
}
mListview = (ListView) findViewById(R.id.listview);
adapter = new HeroAdapter(this, list);
mListview.setAdapter(adapter);
}
}
解决方案:20分
你是list没有实例化啊,至少在使用list之前要list=new ArrayList<ViewItemClass>(); 玩android,要学会看logcat,光加断点不行,logcat会告诉你哪里出的错,出的错误类型是什么。这样才有效率。
解决方案:20分
对 这就是原因
错误日志 一般都是 第一句话 是 指出 你发生什么错了
然后 后面 相似 XXX.java:334 的就是 说 哪发生了错
日志里后面的 XXX.java:334 就是 最终表现出错误的地方
一般前面是系统文件,
你一条一条看, 发现了 你本人的文件.java:334 时 就可以知道 你本人的文件.java 的第334行 有毛病
错误日志 一般都是 第一句话 是 指出 你发生什么错了
然后 后面 相似 XXX.java:334 的就是 说 哪发生了错
日志里后面的 XXX.java:334 就是 最终表现出错误的地方
一般前面是系统文件,
你一条一条看, 发现了 你本人的文件.java:334 时 就可以知道 你本人的文件.java 的第334行 有毛病