【问题标题】:How can i get (keys,values) from an array contentvalue in android我如何从android中的数组contentvalue中获取(键,值)
【发布时间】:2013-04-20 21:01:27
【问题描述】:

我会说一点英语,如果很难阅读,请见谅。

这是我的问题。我做了一个扩展 Asyntask 的类来为数据库设置值。 但是我在泛型类型中设置的参数是 ContentValues。

class putInformationToDB extends AsyncTask<ContentValues, Integer, Integer>

然后,当我调用执行方法来运行它时,我设置了一个我之前创建的内容值,以从注册表和对话框中获取所有值。 但是现在在方法中:

protected Integer doInBackground(ContentValues... params)

我有问题。参数是一个数组内容值,我不知道如何取回值/键。如果它是一个内容值,我会用迭代器和映射取回这些值。但我不知道如何首先将其转换为 contentvalues。 :-(

我正在考虑传递另一种参数,例如 String,然后通过循环获取它并将其放入 ContentValues 中。

【问题讨论】:

    标签: java android arrays android-asynctask threadpool


    【解决方案1】:

    您可以简单地遍历数组:

    for(ContentValues c : params){
        //do something with c
    }
    

    或者如果您确定数组中只有一个元素,您可以直接访问它:

    ContentValues c = params[0];
    

    【讨论】:

    • 谢谢。好吧,我很困惑。
    • 有点晚了,但我得到“foreach 不适用于 contentvalues”
    • 您必须记住,迭代是通过 ContentValues 数组进行的,而不是通过特定的 ContentValues。要遍历 ContentValues,您必须使用:for(Entry entry: contentValues.valueSet()){ ... }
    【解决方案2】:

    如果你传递了一个数组。你可以简单地使用它 ` ContentValues[] arr = params[0];

    【讨论】:

      【解决方案3】:

      要从ContentValues 获取密钥,请使用 for 获取每个密钥集:

          ContentValues c = new ContentValues();
          ...
          ...
          for(String key : response.keySet()){
             System.out.println("key : " + key);       
          }
      

      但是如果你想把每个键的值拿到ContentValue里面,使用get(String key)的方法:

          for(String key : response.keySet()){
             System.out.println("key : " + key + " value: " + response.get(key));       
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-30
        • 2018-08-09
        • 2022-08-15
        相关资源
        最近更新 更多