您好我正在尝试从SQLite数据库中获取数据并将其添加到列表视图中,到目前为止,我有以下内容但是它无效。我不确定数据是否正确添加到数组中。我有一个名为ViewAll的函数,它在onCreate中被调用。
我在名为datahelper
的类中有这个 public Cursor getAllData(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select * from " +TABLE_NAME, null);
return res;
}
然后是下一个应该在listview中显示数据的类
public void ViewAll() {
Cursor res = myDb.getAllData();
String[] data;
if (res != null) {
while (res.moveToNext()) {
data = new String[10];
data[0] = String.valueOf(res.getInt(0));
data[1] = res.getString(1);
data[2] = res.getString(2);
data[3] = String.valueOf(res.getInt(3));
data[4] = String.valueOf(res.getFloat(4));
data[5] = String.valueOf(res.getFloat(5));
data[6] = String.valueOf(res.getInt(6));
data[7] = String.valueOf(res.getInt(7));
data[8] = String.valueOf(res.getInt(8));
data[9] = String.valueOf(res.getInt(9));
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.display_data_layout, data);
ListView list = (ListView) findViewById(R.id.displayview);
list.setAdapter(adapter);
}
}
}
答案 0 :(得分:0)
您需要重新编写代码。您正在一次读取一个条目,创建适配器,并为该条目设置适配器。然后,您阅读下一个条目,创建一个新的适配器(丢弃之前的适配器),并设置该适配器。如此有效,只使用表格中的最后一行。
你最好重新开始,看看here如何从光标填充列表视图。
答案 1 :(得分:0)
你必须做这样的事情 ListView mylistview; ArrayAdapter listAdapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mylistview = (ListView) findViewById(R.id.listView1);
final String[] items = { "White", "Black", "Red", "Green", "Yellow",
"Blue", "Pink" };
// String[] items = new String[]{ "White", "Black", "Red", "Green",
// "Yellow" ,"Blue","Pink"};
listAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items);
mylistview.setAdapter(listAdapter);
// For ListItem Click
mylistview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
String s = items[position].toString();
Toast.makeText(Main.this, "Selected Color is " + s, 3000).show();
}
});
}
}