Обновить элементы Spinner в базе данных. - PullRequest
0 голосов
/ 03 марта 2011

У меня есть спиннер, который загружает элементы из базы данных SQLite. это работает отлично. затем у меня есть текст редактирования, чтобы получить выбранный элемент счетчика в этот текст редактирования. это также работает. затем я хочу изменить текстовое значение редактирования и обновить этот элемент счетчика в базе данных. так как это сделать. Пожалуйста, помогите. Thnx

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

Допустим, вы заполнили Spinner spinner данными из базы данных. И у вас есть EditText editText и Button 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);
    }
}
0 голосов
/ 03 марта 2011

Вы должны сделать запрос на обновление sql. Поскольку вы уже получаете элементы блесны из БД, вы должны знать, как делать запросы. Чтобы сделать запрос на обновление, вы должны вызвать метод db. update () .

...