<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@+id/list"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="@null"
/>
<Button android:id="@+id/btn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="获取选中ID"
/>
</LinearLayout>
一个ListView,一个Button
package com.pocketdigi;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class Test2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ListView lv=(ListView)findViewById(R.id.list);
String[] Names=new String[]{"a","b","c"};
ArrayAdapter<String> Adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, Names);
//使用系统内置的layout
lv.setAdapter(Adapter);
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
//设置多选模式
Button btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
long[] ids=lv.getCheckItemIds();
//得到选中的itemId
String str="";
for(int i=0;i<ids.length;i++){
str+=ids[i]+",";
}
Toast.makeText(Test2Activity.this, str, Toast.LENGTH_LONG).show();
//输出ID
}});
}
}
分享到:
相关推荐
} else if (listView.getChoiceMode() == ListView.CHOICE_MODE_MULTIPLE) { // 多选模式的处理 SparseBooleanArray checkedItems = listView.getCheckedItemPositions(); for (int i = 0; i < listView....
ListView中有一个属性:android:choiceMode,对应三个可选值: * singleChoice 单选 * multipleChoice 多选 * none 默认情况,没有选中效果 在ListView的布局中设置了android:choiceMode属性后,item布局需要实现...
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); list.setOnItemClickListener(listClickListener); ``` 在上面的代码中,我们首先获取 ListView 的实例,然后创建一个 Adapter 并将其设置到 ListView 中。...
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); list.setOnItemClickListener(listClickListener); window = new PopupWindow(view, 500, 260); } // 设置整个PopupWindow的样式 window.setBackground...
启用多选模式,使用`listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)`。在这种模式下,你需要跟踪已选中的项,并在Adapter中更新它们的状态。 3. **无选择模式(None)** 默认情况下,ListView处于无选择...
在ListView上设置`setChoiceMode()`方法,传入`ListView.CHOICE_MODE_MULTIPLE`参数: ```java ListView listView = findViewById(R.id.listView); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); ``` ...
为了实现多选,我们需要将ListView的`choiceMode`设置为`ListView.CHOICE_MODE_MULTIPLE`。这样用户就可以同时选择多个条目。 ```java listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); ``` 2. **检查标记...
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); ``` 二、Adapter的使用 ListView的数据源通常是通过Adapter来提供的,它可以是ArrayAdapter、SimpleAdapter或自定义Adapter。在多选模式下,我们还需要...
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); ``` 此外,还可以使用`AbsListView.MultiChoiceModeListener`监听多选模式下的操作,如全选、反选、单选等。 ### 5. 性能优化 - 使用ViewHolder模式:...
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); ``` #### 3.2 保存选中状态 由于ListView的滚动复用特性,我们需要保存每个item的选中状态。可以使用 SparseBooleanArray 来存储选中状态,每次点击时...
这时,我们需要使用ListView的ChoiceMode属性设置为MULTIPLE.choice,这样在长按时会显示选择指示器。同时,我们需要在Adapter中实现Checkable接口,以支持多选模式。 ```java listView.setChoiceMode(ListView....
3. 启用多选模式:调用ListView的setChoiceMode方法,如`listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)`启用多选模式。 4. 实现选择模式监听:可以通过重写onItemCheckedStateChanged方法,监听选中状态的...
例如,使用`listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE)`可以让用户单选一个项目,而`listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)`则允许多选。这样,当用户点击一个项时,它会被自动选中。 ...
如果支持多选,则使用`setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)`。这样,当用户点击item时,ListView会自动处理选中状态。 3. **使用CheckedTextView** 对于简单的高亮需求,可以使用内置的CheckedTextView...
- 多选模式:使用setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)。 10. **自定义Adapter的优化**: - 数据变更时,不应直接修改数据集,而应调用Adapter的notifyDataSetChanged()方法通知ListView更新。 - 避免...
2. 多选模式:通过设置`setChoiceMode()`,可以实现单选或多选模式,如`listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)`。 3. OnItemClickListener:设置监听器处理点击事件,如`listView....
- 对于全选功能,我们需要设置为多选模式,通过`listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)`。 4. **选择状态管理**: - 需要一个数据结构(如ArrayList)来保存每个列表项的选中状态。 - 在用户...
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, ...
- 在ListView中,使用`setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)`开启多选模式。用户可以同时选择多个条目,通常配合CheckBox控件使用。 - 对于ExpandableListView,同样需要自定义适配器和逻辑,维护一个...
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); listView.setAdapter(adapter); // 设置点击监听 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void ...