我使用自定義的CursorAdapter
來顯示SQLite數據庫中的用戶數據。 每個ListView項目實際上是一個包含許多TextView的佈局。從ListView項目訪問SQLite記錄?
CursorAdapter.bindView()
方法我從Cursor獲取數據庫數據,並向用戶顯示修改後的更漂亮的版本。這就是我的意思是:
public void bindView(View view, Context context, Cursor cursor) {
//get listview items Views
TextView dayTextView = (TextView)view.findViewById(R.id.listview_item_day);
//...
//get data from cursor
int day = cursor.getInt(1);
//...
//display data nicely to the user
String sDay = "Day number " + String.valueOf(day) " was a very nice day";
dayTextView.setText(sDay);
}
我想,當用戶長點擊一個項目(我將使用OnItemLongClickListener
爲),該項目將被刪除(易peasy)但我也想刪除來自數據庫的一天記錄。
當ListView項被點擊,我提供給我的下一個參數(在OnItemLongClickListener
):
AdapterView<?> adapterView, View view, int position, long id
我如何從所有這些參數的數據庫記錄?我可以使用TextView.getText()
並將一些字符串操作方法應用到結果中(記住,我在將數據設置到ListView之前向數據添加了字符串),但我覺得還有另一種更聰明的方法。
我將不得不更新'days'內'bindView()',對吧?我如何知道'bindView()'中的每個'View'將決定哪個位置? – Pilpel
在您的bindView中,您可以通過以下方式獲取您的位置:cursor.getPosition(); – Meikiem
它從位置0開始到列表的末尾,並且每次在bindView內添加到dayslist.add(day)。你明白了嗎? – Meikiem