使用listview简单适配器时发生Java.Lang.NullPointerException
我有一个listview,它显示了两个sqlite表的值。首先,我尝试使用ArrayAdapter查看它们,并显示了所有值。但它们看起来很凌乱,所以我尝试使用一个简单的适配器。hhr是我的代码使用listview简单适配器时发生Java.Lang.NullPointerException,java,android,android-listview,Java,Android,Android Listview,我有一个listview,它显示了两个sqlite表的值。首先,我尝试使用ArrayAdapter查看它们,并显示了所有值。但它们看起来很凌乱,所以我尝试使用一个简单的适配器。hhr是我的代码 for(int i=0; i<= promo.size();i++){ ProductModulePromo b =dataSource.getproductmodulepromo(moduleid); productmoduledesc = b.getProductmodulede
for(int i=0; i<= promo.size();i++){
ProductModulePromo b =dataSource.getproductmodulepromo(moduleid);
productmoduledesc = b.getProductmoduledesc().toString();
producttype = b.getProducttype().toString();
productpromo = b.getproductpromotion().toString();
map1.put("three",productpromo);
map1.put("two",producttype);
map1.put("one",productmoduledesc);
Globals.promo.add(map1);}
我在
map1.put(“one”,productmoduledesc)上得到一个错误,名为Java.Lang.NullpointerException
代码>。我不知道怎么把它们都修好。谢谢你的帮助。任何帮助都将不胜感激。似乎您从未设置map1,请将其添加到循环的开头,否则会覆盖旧值
像这样
...
do {
map1 = newHashMap<String, String>(); // add
productmoduledesc=cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_MODULE_DESC));
producttype = cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_TYPE));
productpromo = cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_PROMOTION));
map1.put("one",productmoduledesc);
map1.put("two",producttype);
map1.put("three",productpromo);
promo.add(map1);
} while (cursor.moveToNext());
...
。。。
做{
map1=newHashMap();//添加
productmoduledesc=cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_MODULE_DESC));
producttype=cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_TYPE));
productpromo=cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_-PROMOTION));
map1.放置(“一”,productmoduledesc);
map1.put(“两个”,产品类型);
map1.put(“三”,productpromo);
促销添加(map1);
}while(cursor.moveToNext());
...
什么是空值map1
或productmoduledesc
?如果关于NPE
发生的位置正确,则map1
为null
。您在哪里初始化它?可能您没有在DBDatasource.java
或public ArrayList getproduct1()
@John3136中声明map1
,我检测不到在哪里出现空值。.ohhh我在DBDatasource.java上用privat初始化了它
dataSource = new DBDataSource(this);
dataSource.open();
promo = dataSource.getproduct1();
adapter = new SimpleAdapter(FormPromo.this, promo, R.layout.item_to,
new String[] {"one","two","three"},
new int[] {R.id.edtbrandto,R.id.edtqtyto,R.id.edtharga});
setListAdapter(adapter);
final ListView listpromo = (ListView) findViewById(android.R.id.list);
setListAdapter(adapter);
...
do {
map1 = newHashMap<String, String>(); // add
productmoduledesc=cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_MODULE_DESC));
producttype = cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_TYPE));
productpromo = cursor.getString(cursor.getColumnIndex(DBHelper.PRODUCT_PROMOTION));
map1.put("one",productmoduledesc);
map1.put("two",producttype);
map1.put("three",productpromo);
promo.add(map1);
} while (cursor.moveToNext());
...