我有一个容器,适配器和几件物品。我想逐项将项目保存到数据库中。 但是,我在从适配器获取下一个项目并调整适配器大小时遇到问题。 到目前为止,我有以下代码:
adapter.add(item[0]);
adapter.add(item[1]);
adapter.add(item[2]);
item = adaper.getItem(0);
item.setDismissListener(new Item.OnDimissedListener(){
@Override
public void save(){
1. save item to database, it works here
2. get next item, I do
item = adapter.removeFirst(); // this one returns null pointer exception.
}
}
container.setAdapter(adapter); // set adapter here
你们有什么想法吗?
答案 0 :(得分:0)
我有一个类似的项目,我在SQLite数据库中存储字符串,用户可以添加/删除/修改项目。我所做的是暂时将项目列表存储在ArrayList<String>
中,然后在adapter.notifyDataSetChanged();
更改时使用ArrayList
更新ListView适配器。
在你的情况下,我尝试这样的事情:
// Create an ArrayList <String>
ArrayList<String> itemsArray = new ArrayList<String>();
itemsArray.add( YOUR_ITEMS_GO_HERE );
...
// add data in ArrayAdapter
adapter = new ArrayAdapter<String>(this, R.layout.list, itemsArray);
ListView dataList = (ListView) findViewById(R.id.list);
dataList.setAdapter(adapter);
// Perform your Save actions
// Delete the first item in the ArrayList
list.remove(0); // removes the first item
// Update the ListView
adapter.notifyDataSetChanged();
如果您不使用字符串,请将<String>
替换为<Object Type>