pre*_*thi 47 android android-listview
我正在使用数组适配器,并且这是添加字符串s的数组列表,列表是多选,如何获取列表项的值被点击?
my_contacts_list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice,conts_list);
my_contacts_list.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
我试图这样做,
SparseBooleanArray positions = my_contacts_list.getCheckedItemPositions();
int size=positions.size();
int i=0;
while(i <= size){
conts_list.get(positions.get(i));
i++;
}
Run Code Online (Sandbox Code Playgroud)
但是position.get(i)是一个数组列表,那么如何检索所选项呢?
小智 44
SparseBooleanArray.get返回一个布尔值,但我相信你需要检查列表中的每个位置,例如
int len = listView.getCount();
SparseBooleanArray checked = listView.getCheckedItemPositions();
for (int i = 0; i < len; i++)
if (checked.get(i)) {
String item = cont_list.get(i);
/* do whatever you want with the checked item */
}
Run Code Online (Sandbox Code Playgroud)
Rog*_*ays 43
这个API很乱.这对我有用.
SparseBooleanArray checked = tags.getCheckedItemPositions();
for (int i = 0; i < checked.size(); i++) {
if(checked.valueAt(i)) {
Tag tag = (Tag) tags.getItemAtPosition(checked.keyAt(i));
Log.i("xxxx", i + " " + tag);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 17
我相信从中获取信息的最快方法SparseArray是迭代密钥(实际上我很确定上述解决方案在所有情况下都不起作用).在ListView将进入对(指数,真实)插入SparseBooleanArray每选定的索引.
所以代码可能如下所示:
SparseBooleanArray checked = lv.getCheckedItemPositions();
int size = checked.size(); // number of name-value pairs in the array
for (int i = 0; i < size; i++) {
int key = checked.keyAt(i);
boolean value = checked.get(key);
if (value)
doSomethingWithSelectedIndex(key);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77661 次 |
| 最近记录: |