将Spinner项更新到数据库。

时间:2011-03-03 18:22:28

标签: android database sqlite spinner

我有一个微调器,可以从SQLite数据库加载项目。它工作正常。 然后我有一个edittext来将选定的微调项目项目添加到该edittext。它也是炒锅。 然后我想更改编辑文本值并将该微调项目更新到数据库。 那怎么做请任何帮助。日Thnx

2 个答案:

答案 0 :(得分:0)

你应该进行sql更新查询。由于您已从DB中获取微调项目,因此您应该知道如何进行查询。要进行更新查询,您必须调用db。update()方法。

答案 1 :(得分:0)

可以说,您已使用数据库中的数据填充了Spinner spinner。您有EditText editTextButton button来更新微调器值。然后您可以实现以下内容:

...
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int position, long arg3) {

                //code to display the selected item in EditText
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {

        }
});
selectDate.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

                 DatabaseCreator dbcreator=new DatabaseCreator(context);
                 SQLiteDatabase sqdb=dbcreator.getWritableDatabase();   

                 ContentValues values=new ContentValues();

                 //Update respective fields in database 
                 values.put("field_1",newValue1);
                 values.put("field_2",newValue2);

                 long suceess=sqdb.update( "table_name", values, KEY_ID+"='"+id+"'", null);
                 // you can place any condition in place of KEY_ID+"='"+id+"'" as third argument in above statement

                 if(success!=0)
                 {
                      //repopulate spinner here
                 }  
        }
});
...

<强> DatabaseCreator.class:

public class DatabaseCreator extends  SQLiteOpenHelper{

    private static final String DB_NAME="db_name";
    private static final int DB_VER=2;

    private static final String TABLE_1="create table table_1(...);"; //complete create query goes here

    public DatabaseCreator(Context context) {
        super(context,DB_NAME, null, DB_VER);
    }

    @Override
    public void onCreate(SQLiteDatabase database) {

        database.execSQL(TABLE_1);      
    }

    @Override
    public void onUpgrade(SQLiteDatabase database, int arg1, int arg2) {

            database.execSQL("DROP TABLE IF EXISTS db_name");
        onCreate(database);
    }
}