Android:Listview无法使用simpleCursorAdapter正确显示

时间:2012-02-16 13:17:40

标签: android sqlite cursor android-listview simplecursoradapter

我用相当简单的应用程序挣扎了一段时间。 这是我在listactivity类中的onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    DB db = new DB(this);
    db.open();
    cur = db.getData(); //cursor with all data from an SQLite db

    String[] from = new String[] { DB.KEY_FIRSTNAME,
            DB.KEY_LASTNAME, DB.KEY_BDATE};
    int[] to = new int[] { NOT SURE WHAT TO PUT HERE };
    startManagingCursor(cur);
    setListAdapter(new SimpleCursorAdapter(this, 
    android.R.layout.simple_list_item_1, cur, from, to));

    db.close();

    }

getData()方法从sqlite数据库返回一个游标。定义的适配器使用的int []是我认为问题所在,但我不知道如何解决它。我拿出的清单是空白的。只有类似于数据库中条目数或仅有1列的行。我尝试过int [] {android.R.id.text1,android.R.id.text1,android.R.id.text1,android.R.id.text1}以及更少的条目,而text2和Ive现在尝试过只需制作一个textview并调用它,但它会再次变为空白。

我希望你能帮助我解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:3)

您的to变量存储您要将数据映射到的位置的R.id。例如,如果布局(android.R.layout.simple_list_item_1)中有三个TextView,名为fName,lName和bDate,您可以将它们放在int array中,它会将from字段中的数据映射到在to字段中的屏幕布局组件上。

int[] to = new int[] {R.id.fName, R.id.lName, R.id.bDate};