如何从字符串数组创建listView

时间:2016-03-07 18:23:26

标签: java android sqlite

您好我正在尝试从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);

        }

    }
}

2 个答案:

答案 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();
        }
    });
}

}