0

这是我用来在.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;

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

4

2 回答 2

3

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

它将解决您的问题。

于 2012-08-02T14:49:12.110 回答
1

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

startActivity(getIntent);

或者

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

它将解决您的问题。

希望能帮助到你

于 2012-08-02T14:52:06.460 回答