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 に答える