我是Android編程新手,有一個基本問題。如何一次性將ListView保存到數據庫中
我已經創建了一個ListActivity
其中ListView
中的每一行都有一個TextView
和一個RatingBar
。我可以通過從預填充的數據庫讀取它們來顯示TextView
和RatingBar
中的值;我通過自定義CursorAdapter
這樣做的,這是bindView()
方法,即
public class MyCursorAdapter extends CursorAdapter {
...
public void bindView(View view, Context context, final Cursor cursor) {
TextView name = (TextView)view.findViewById(R.id.name);
name.setText(cursor.getString(cursor.getColumnIndex(MyDbAdapter.KEY_NAME)));
RatingBar rating = (RatingBar)view.findViewById(R.id.life_bar_rating);
rating.setRating(cursor.getFloat(cursor.getColumnIndex(MyDbAdapter.KEY_RATING_VALUE)));
}
...
}
現在,我的問題是,在我的ListActivity
我希望用戶能夠點擊「保存」按鈕,以便保存所有更改到數據庫一氣呵成?我將如何遍歷適配器以獲取行ID和評級值,以便它們可以被保存(或者是否有另一種更好的方法來做到這一點?)。
我之所以想要一次性保存是因爲我認爲每次用戶更改單個評分時更新數據庫都是不好的做法(儘管這很容易),因爲這會導致閃存更多磨損。我可能對此有錯,但我認爲閃存的讀寫數量有限。
感謝您的幫助!我沒有初始化任何支持數組 - 我是否需要爲CursorAdapter執行此操作?此外,getItem(我)返回一個「對象」 - 我將如何從它提取RatingBar(我不需要TextView)? – Mewzer 2012-07-30 15:42:29
編輯。我寧願在適配器中創建一個getRating(int position)方法,並使用它代替getItem()...但這意味着子類化適配器。 – Shark 2012-07-30 15:49:28