[英]Android Show database entries in listview
我已經搜索過,無法弄清楚為什么我的代碼無法正常工作。 我想顯示數據庫中的一行,並在列表視圖中顯示該行的所有記錄。 該代碼有效,但是它只返回一個listview值,而不是數據庫內部行中的所有記錄。 這是我更新的代碼:
db = openOrCreateDatabase ("Names", MODE_PRIVATE, null);
String query = "SELECT * from players";
Cursor c = db.rawQuery(query, null);
int count = c.getCount();
c.moveToFirst();
ListView layout=(ListView)findViewById(R.id.listView1);
for (Integer j = 0; j < count; j++){
String lister = c.getString(c.getColumnIndex("names_of"));
String[] items = {lister};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
layout.setAdapter(adapter);
c.moveToNext();
}
db.close();
}
數組工作不正常,如何獲得比第一個值更多的值? 謝謝大家
使用這個,您應該將所有值存儲在字符串數組中,並將適配器行移出循環
for (Integer j = 0; j < count; j++){
String[j] items = lister;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
layout.setAdapter(adapter);
試試這個代碼。
try to use this:
db = openOrCreateDatabase ("Names", MODE_PRIVATE, null);
String query = "SELECT * from players";
Cursor c = db.rawQuery(query, null);
int count = 0;
String[] items=new String[c.getCount()];
if (c.moveToFirst()) {
do {
TextView txt = new TextView(getApplicationContext());
txt.setText(c.getString(c.getColumnIndex("names_of")));
txt.setPadding(20, 20, 20, 20);
txt.setTextSize(20.0f);
txt.setTextColor(Color.MAGENTA);
String lister = c.getString(c.getColumnIndex("names_of"));
items[count] = lister;
count++;
} while (c.moveToNext());
}
c.close();
}
db.close();
在那之后設置適配器,如果items
不為空
if(items.length>0){
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
layout.setAdapter(adapter);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.