使用微调器从SQLite中删除记录并更新Android中的微调器值不能正常工作

问题描述 投票:1回答:1

我有一个微调器,它有3个值来自SQLite数据库,一个虚拟和2个真实

我选择一个项目,然后删除一个项目

当我试图删除下一个时,微调器没有更新它的值。即使我重新加载活动,它的值也在那里。

将数据加载到微调器的方法,每当我删除项目时我都会调用它:

private void LoadSpinnerData(ArrayList<String> list)
{     
    seasonslist.add(0,"Please Select");
    // Creating adapter for spinner
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // attaching data adapter to spinner
    MySpin.setAdapter(dataAdapter);
    dataAdapter.notifyDataSetChanged();

}

这是我的删除方法

mHelper.deleteItem(Id);
Selected_id=null;
List = mHelper.getAllData();
LoadSpinnerData(List);

在这里我的微调项目选择

 MySpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
        {
            if(position>0)
            {
                Selected_id = (int) (long) id;
            }

        }

    });

我的删除功能是

public boolean deleteItem(int id)
{
    SQLiteDatabase db = this.getWritableDatabase();
    return db.delete("mytable","item_id"+"="+Integer.toString(id),null)>0;
}
android sqlite spinner
1个回答
0
投票

删除后而不是adapter.notifyDataSetChanged();您可以使用以下代码。

adapter.remove(position);

这里的位置将是数据库中的item_id匹配。

这将检查数据库中的id,并将根据微调器列表的索引位置删除微调器列表项的位置。

因此,首先从微调器项目中删除,然后从数据库中删除,反之亦然

© www.soinside.com 2019 - 2024. All rights reserved.