【问题标题】:Is there an easy way to populate a ListView with Cursor?有没有一种简单的方法可以用光标填充 ListView?
【发布时间】:2014-12-08 10:41:41
【问题描述】:

我想知道是否有一种简单的方法可以用光标填充 ListView,就像使用 EditText 一样:

final EditText visnavn=(EditText)findViewById(R.id.visnavn);

DBAdapter db;

Cursor cur = db.findall();

            if(cur.moveToFirst()){
                do{
                    visnavn.append(cur.getString(0));
                    visnavn.append(" ");
                    visnavn.append(cur.getString(1));
                    visnavn.append("\n");
                }while(cur.moveToNext());
            }
            cur.close();

我尝试过这样的事情,但没有运气:

    Cursor c = db.findAll();
    ListView list = (ListView)findViewById(R.id.list);

    if(c.moveToFirst()){
        do{
            list.add(c.getString(0));
            list.add(" ");
            list.add(c.getString(1));
        }while(c.moveToNext());
    }
    c.close();

【问题讨论】:

  • 所以,没有吗?
  • 它比使用你应该使用的适配器更容易
  • 实际上有一个更简单的方法,我必须为学校项目这样做。我将一个新的 XML 文件解析为一个变量并填充它。填充解析的 XML 文件后,我将其添加到列表中,瞧。它就在那里,一个充满记录的列表视图。 :) 我会将代码作为解决方案发布!
  • 那太好了!

标签: java android android-listview android-sqlite android-cursor


【解决方案1】:

好的,正如我在 cmets 中已经说过的,有一种简单的方法可以将光标数据加载到列表视图中,这是我使用的代码。也许它对你有用! :)

final Cursor locations = <get your data here>
locations.moveToFirst();
LayoutInflater inflater = this.getLayoutInflater();
while ( locations.isAfterLast() == false ) {
    View tablerow = inflater.inflate(R.layout.tablerow, null);
    TextView txtName = (TextView)tablerow.findViewById(R.id.txtName);

    txtName.setText(locations.getString(1));
    sView.addView(tablerow);
    locations.moveToNext();
}

【讨论】:

    猜你喜欢
    • 2011-06-03
    • 2010-09-13
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多