Android 添加Hashmap时的ArrayList提供NPE subMap=newhashmap(); cursor=sdB.query(DataBase.TB,cols,null,null,null,null); cursor.moveToFirst(); 限值=1; while(cursor.moveToNext()){ 极限+=1; } 极限*=2; cursor.moveToFirst(); 做{ 对于(i=i+1;i
您需要初始化列表Android 添加Hashmap时的ArrayList提供NPE subMap=newhashmap(); cursor=sdB.query(DataBase.TB,cols,null,null,null,null); cursor.moveToFirst(); 限值=1; while(cursor.moveToNext()){ 极限+=1; } 极限*=2; cursor.moveToFirst(); 做{ 对于(i=i+1;i,android,arraylist,hashmap,Android,Arraylist,Hashmap,您需要初始化列表主题。例如: subMap = new HashMap<String, String>(); cursor = sdB.query(DataBase.TB, cols, null, null, null, null, null); cursor.moveToFirst(); limit = 1; while(cursor.moveToNext()){ limit +=1; } limit *= 2
主题。例如:
subMap = new HashMap<String, String>();
cursor = sdB.query(DataBase.TB, cols, null, null, null, null, null);
cursor.moveToFirst();
limit = 1;
while(cursor.moveToNext()){
limit +=1;
}
limit *= 2;
cursor.moveToFirst();
do{
for(i=i+1; i<limit; i++){
if(i%2!=0){
subCode = cursor.getString(cursor.getColumnIndex(DataBase.C_CODE));
subMap.put(TAG_SUB_CODE, subCode);
Log.i("Alert", subCode);
subjects.add(subMap);
break;
}
else{
subName = cursor.getString(cursor.getColumnIndex(DataBase.SUB_TITLE));
subMap.put(TAG_SUB_NAME, subName);
if(subMap.containsKey(TAG_SUB_NAME))
Log.i("Alert", "Yes");
if(subMap.containsValue(subName))
Log.i("Alert", "Again Yes");
Log.i("Alert", TAG_SUB_NAME);
Log.i("Alert", subName);
subjects.add(subMap);
}
}
}while(cursor.moveToNext());
cursor.close();
subjects.add(subMap);
将抛出NPE。最有可能的主题为空。您是否已按如下方式初始化它:
subMap = new HashMap<String, String>();
cursor = sdB.query(DataBase.TB, cols, null, null, null, null, null);
cursor.moveToFirst();
limit = 1;
while(cursor.moveToNext()){
limit +=1;
}
limit *= 2;
cursor.moveToFirst();
do{
for(i=i+1; i<limit; i++){
if(i%2!=0){
subCode = cursor.getString(cursor.getColumnIndex(DataBase.C_CODE));
subMap.put(TAG_SUB_CODE, subCode);
Log.i("Alert", subCode);
subjects.add(subMap);
break;
}
else{
subName = cursor.getString(cursor.getColumnIndex(DataBase.SUB_TITLE));
subMap.put(TAG_SUB_NAME, subName);
if(subMap.containsKey(TAG_SUB_NAME))
Log.i("Alert", "Yes");
if(subMap.containsValue(subName))
Log.i("Alert", "Again Yes");
Log.i("Alert", TAG_SUB_NAME);
Log.i("Alert", subName);
subjects.add(subMap);
}
}
}while(cursor.moveToNext());
cursor.close();
subjects.add(subMap);
ArrayList subjects=new ArrayList();
在何处以及如何初始化主题
?因为如果您在此行获得NPE:主题。添加(子映射)
那么你的主题==Null你没有显示主题的声明和定义
。怎么会有人知道它有什么问题?好的……我现在知道了……非常感谢……非常感谢。事实上,我忘了添加主题=new Arraylist();在添加它之后很有效。很酷。关于NPE的进一步阅读,请参阅以下答案: