【问题标题】:Android SQLite: Spinner + select sql methodsAndroid SQLite:微调器 + 选择 sql 方法
【发布时间】:2015-03-31 05:34:35
【问题描述】:

我有一个显示 SQLite 数据的 Spinner。为此,我正在使用这种选择方法:

public List<String> getAllProductsName(int id)
{

    String buildSQL = "SELECT nome FROM " + DatabaseHelper.Produtos.TABELA + " WHERE id =" + id;


    List<String> nomes = new ArrayList<String>();

    SQLiteDatabase db = this.getDatabase();

    Cursor cursor = database.rawQuery(buildSQL, null);

    if (cursor.moveToFirst()) {
        do {
            nomes.add(cursor.getString(0));
        } while (cursor.moveToNext());
    }

    return nomes;
}

问题是,我只得到名字,但我也需要 ID。我知道我可以使用 "SELECT nome, _id FROM",但我该如何返回呢?我可以用相同的方法返回 2 个列表(一个带有 IDS,另一个带有名称)吗?

或者我应该创建一个只显示名称的新方法(当我将 ID 作为参数时)?请帮忙!提前致谢! :)

【问题讨论】:

    标签: android sqlite select


    【解决方案1】:

    这样的事情怎么样...使用并返回 HashMap,其中包含 ID 作为键nome 作为值

    public HashMap<Integer,String> getAllProductsName(int id)
        {
    
            String buildSQL = "SELECT nome,_id FROM " + DatabaseHelper.Produtos.TABELA + " WHERE id =" + id;
    
    
            HashMap<Integer,String> idAndNomes = new HashMap<Integer,String>();
    
            SQLiteDatabase db = this.getDatabase();
    
            Cursor cursor = database.rawQuery(buildSQL, null);
    
            if (cursor.moveToFirst()) {
                do {
                    idAndNomes.put(cursor.getInt(1), cursor.getString(0)));
                } while (cursor.moveToNext());
            }
    
            return idAndNomes;
        }
    

    那么你可以使用:

    idAndNomes.keySet() - 返回此映射中包含的一组键。在我们的例子中是 ID

    idAndNomes.values() - 返回此映射中包含的值的集合。在我们的例子中是 nomes

    【讨论】:

    • 谢谢,这很有帮助!我只有最后一个问题,我如何将它与我用于微调器的适配器一起使用?我必须创建一个 hasmap 适配器还是已经有一个?
    • 这正是您所需要的:stackoverflow.com/questions/24712540/…
    猜你喜欢
    • 2019-05-08
    • 2014-01-10
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    相关资源
    最近更新 更多