【问题标题】:Return String[] From database从数据库返回字符串[]
【发布时间】:2014-08-11 19:21:36
【问题描述】:

我正在尝试从我的数据库中的一列值填充我的 AutoCompleteTextView。

我在数据库中运行的查询是:

// GET MEMOS
    public ArrayList<String> autoCompleteMemo(String table)
    {
        SQLiteDatabase db = this.getReadableDatabase();

        ArrayList<String> memoList = new ArrayList<String>();
        String SQL_GET_MEMOS = "SELECT memo FROM " + table;
        Cursor cursor = db.rawQuery(SQL_GET_MEMOS, null);
        cursor.moveToFirst();
        if (!cursor.isAfterLast()) {
            do {
                memoList.add(cursor.getString(0));
            }
            while (cursor.moveToNext());
        }
        cursor.close();
        db.close();
        return memoList;
    }

这是我尝试设置值的方式:

memoList = new String[db.autoCompleteMemo(table).size()];
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, memoList);
        etMemo.setAdapter(adapter);

由于某种原因,这似乎不起作用。我是否正确地从 ArrayList 转换为 String[]?

谢谢

还有,

如果我做类似的事情

String[] memoList = getResources().getStringArray(R.array.memoList);

并在 Strings.xml 中填充它可以正常工作。

【问题讨论】:

  • 确保您实际获取数据,尝试使用 cursor.getString(cursor.getColumnIndex(columnName));我记得从右列获取值时遇到问题。您可以使用数组列表代替数组。

标签: android arraylist autocompletetextview arrays


【解决方案1】:

我将我的 DB 方法更改为以下,现在它可以工作了

public String[] autoCompleteMemo(String table) {
        SQLiteDatabase db = this.getReadableDatabase();
        String SQL_GET_MEMOS = "SELECT memo FROM " + table;
        Cursor cursor = db.rawQuery(SQL_GET_MEMOS, null);

        if (cursor.getCount() > 0) {
            String[] str = new String[cursor.getCount()];
            int i = 0;

            while (cursor.moveToNext()) {
                str[i] = cursor.getString(cursor.getColumnIndex("memo"));
                i++;
            }
            return str;
        }
        else {
            return new String[] {};
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2016-02-12
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多