我会说一点英语,如果难以阅读,请见谅。
这是我的问题:我创建了一个扩展
Asynctask
的类来设置数据库中的值。
但我在泛型类型中设置的参数是ContentValues
。
class putInformationToDB extends AsyncTask<ContentValues, Integer, Integer>
然后,当我调用execute方法来运行它时,我设置了之前创建的
ContentValues
,以从注册表和对话框中获取所有值。
但现在在方法中:
protected Integer doInBackground(ContentValues... params)
我有一个问题。参数是一个
ContentValues
数组,我不知道如何取回值/键。如果它是 ContentValues
,我会用 Iterator
和 map
取回值。但我不知道如何先将其转化为ContentValues
。 :-(
我正在考虑传递另一种参数,例如 String,然后用循环获取它并将其放入 ContentValues 中。
您可以简单地迭代数组:
for(ContentValues c : params){
//do something with c
}
或者如果您确定数组中只有一个元素,您可以直接访问它:
ContentValues c = params[0];
如果您传递了一个数组。你可以简单地使用它 ` ContentValues[] arr = params[0];
要从 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));
}