如何从适配器中删除项目

时间:2014-09-13 22:41:46

标签: android view null adapter

我有一个容器,适配器和几件物品。我想逐项将项目保存到数据库中。 但是,我在从适配器获取下一个项目并调整适配器大小时遇到​​问题。 到目前为止,我有以下代码:

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

你们有什么想法吗?

1 个答案:

答案 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>