【问题标题】:SQLite query: get all columns of a row(android)?SQLite 查询:获取一行的所有列(android)?
【发布时间】:2014-04-05 18:42:29
【问题描述】:

这是架构:

SQL 查询是: SELECT * from unjdat where col_1 = "myWord";

即,我想显示 col_1 为 myWord 的行的所有列。

int i;
String temp;
words = new ArrayList<String>();
Cursor wordsCursor = database.rawQuery("select * from unjdat where col_1 = \"apple\" ", null); //myWord is "apple" here
    if (wordsCursor != null)
        wordsCursor.moveToFirst();
    if (!wordsCursor.isAfterLast()) {
        do {
            for (i = 0; i < 11; i++) {
                temp = wordsCursor.getString(i);
                words.add(temp);
           }
        } while (wordsCursor.moveToNext());
    }
    words.close();

我认为问题在于循环。如果我删除 for 循环并执行 wordsCursor.getString(0) 它可以工作。 如何循环获取所有列?

注意

  1. col_1 永远不会为空,对于某些行,col_2 到 col_11 中的任何一个都可能为空。
  2. 表中的所有列和所有行都是唯一的。

【问题讨论】:

    标签: java android sqlite android-sqlite


    【解决方案1】:

    应该是这样的

    Cursor cursor = db.rawQuery(selectQuery, null);
        ArrayList<HashMap<String, String>> maplist = new ArrayList<HashMap<String, String>>();
        // looping through all rows and adding to list
    
        if (cursor.moveToFirst()) {
            do {
                HashMap<String, String> map = new HashMap<String, String>();
                for(int i=0; i<cursor.getColumnCount();i++)
                {
                    map.put(cursor.getColumnName(i), cursor.getString(i));
                }
    
                maplist.add(map);
            } while (cursor.moveToNext());
        }
        db.close();
        // return contact list
        return maplist;
    

    编辑用户想知道如何用HashMap填充ListView

    //listplaceholder is your layout
    //"StoreName" is your column name for DB
    //"item_title" is your elements from XML
    
    ListAdapter adapter = new SimpleAdapter(this, mylist, R.layout.listplaceholder, new String[] { "StoreName",
                    "City" }, new int[] { R.id.item_title, R.id.item_subtitle });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多