插入记录时如何在微调器中更新数据库?

时间:2012-08-02 14:30:38

标签: android database sqlite android-spinner

以下是用于在 .MainActivity.java

中加载微调器的代码
    public void spin() {
    {  
        try{  
            SQL db = new SQL(getBaseContext());  
            db.open();  
            List<String> cursor = db.selectAll();
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  
                android.R.layout.simple_spinner_item, cursor);
                s.setAdapter(adapter);  
        }  
        catch(Exception e)  
        {  
        Log.v("Error","e.tostring()");  
        }
    }  

以下是 SQL.java 中的代码,用于从数据库中获取项目。

    public List<String> selectAll() {
    List<String> list = new ArrayList<String>();
    Cursor cursor = this.mydb.query(DATABASE_TABLE, new String[] {KEY_NAME
    }, null, null, null, null, null);
    if (cursor.moveToFirst()) {
        do {
            list.add(cursor.getString(0));
        } while (cursor.moveToNext());
    }
    if (cursor !=null && !cursor.isClosed()) {
        cursor.close();
    }
    return list;
}

这是我如何添加其他活动的记录 .Addnew.java

case R.id.bsave:
            boolean work=true;
            try{
            String rno1 = rno.getText().toString();
            String name1 = name.getText().toString();
            String reg1 = reg.getText().toString();
            String mob1 = mob.getText().toString();

            SQL entry = new SQL(Addnew.this);
            entry.open();
            entry.createEntry(rno1,name1,reg1,mob1);
            entry.close();
            }
            catch(Exception e){
                work=false;
                String error = e.toString();
                Dialog d = new Dialog(this);
                d.setTitle("Naah");
                TextView tv = new TextView(this);
                tv.setText(error);
                d.setContentView(tv);
                d.show();
            }finally{
                if(work){
                    Dialog d = new Dialog(this);
                    d.setTitle("Yeah");
                    TextView tv = new TextView(this);
                    tv.setText("Success");
                    d.setContentView(tv);
                    d.show();
                }
            }
            break;

问题是当我在数据库中插入新记录时,它不会立即显示在微调器中,而是仅在重新启动应用程序后显示它。有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

将数据添加到列表后,请设置adapter.notifyDataSetChanged()以更新您的微调内容。

它将解决您的问题。

答案 1 :(得分:1)

尝试通过任何一种方法刷新您的活动

startActivity(getIntent);

Intent addservice1 = new Intent(YourActivity.this,YourActivity.class);
                startActivity(addservice1);

它将解决您的问题。

希望有所帮助