我在我的Android應用程序中使用SQLite數據庫。我從我現在無法找到的特定網站推算出我的代碼。但是代碼包含一個填充和檢索SQLite數據行的類:我稱之爲dbData類。據我所知,它只是存儲數據行。沒有構造函數,所以顯然它使用默認值調用時創建適配器的實例。 tostring作爲dbData返回。但是一個Id也可以設置並獲得。getAdaptoer如何與SQlite數據檢索和存儲的這個簡單類一起使用?
我的一個大問題是爲什麼使用這個類而不是其他類調用這個類的變量?我的下一個問題是,如果listAdaptor返回適配器(根據http://developer.android.com/reference/android/widget/ListView.html#getAdapter()),它會在dbData行dbData中填入哪些信息(dbData)lstView.getAdapter()。getItem(0);它允許dbData返回一個字符串並獲取正確的數據庫行?它會自動將適配器轉換爲數據庫密鑰字段嗎?
感謝您的任何反饋意見。
下面的代碼:
public class dbData {
private long id;
private String dbData;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getDbData() {
return dbData;
}
public void setDbData(String dbData) {
this.dbData = dbData;
}
// Will be used by the ArrayAdapter in the ListView
@Override
public String toString() {
return dbData;
}
}
這裏是它是如何被調用的例子:
public void onClick(View view) {
@SuppressWarnings("unchecked")
ListView lstView = (ListView)findViewById(R.id.lstHolidays);
ArrayAdapter<dbData> adapter = (ArrayAdapter<dbData>) lstView.getAdapter();
dbData dbData = null;
switch (view.getId()) {
case R.id.add:
String[] comments = new String[] { "Cool", "Very nice", "Hate it" };
int nextInt = new Random().nextInt(3);
// save the new dbData to the database
dbData = datasource.createDB_Row(comments[nextInt]);
adapter.add(dbData);
break;
case R.id.delete:
if (lstView.getAdapter().getCount() > 0) {
dbData = (dbData) lstView.getAdapter().getItem(0);
datasource.deleteDB_Row(dbData);
adapter.remove(dbData);
}
break;
}
adapter.notifyDataSetChanged();
}
您發佈的代碼似乎沒有做任何這些事情? – immibis 2015-02-11 02:50:06
我摸索了一下我的解釋。簡化了第一段。這有幫助嗎? – 2015-02-11 02:52:35