本文实例讲述了Android实现ListView控件的多选和全选功能。分享给大家供大家参考,具体如下:
主程序代码
MainActivity.Java
package yy.test;import java.util.ArrayList;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.CheckBox;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { private ListView listView; private MyAdapter adapter; private ArrayList<String> items; //模拟存储信息的集合 private ArrayList<String> checked; //该集合存储被选中的列表项中的TextView中所显示的字符串 private boolean isMultiple = false; // 记录是否是多选状态,true为是,false不是 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView) findViewById(R.id.listview); items = new ArrayList<String>(); items.add("00000"); items.add("11111"); items.add("22222"); items.add("33333"); items.add("44444"); items.add("55555"); items.add("66666"); items.add("77777"); items.add("88888"); items.add("99999"); items.add("aaaaa"); items.add("bbbbb"); items.add("ccccc"); items.add("ddddd"); adapter = new MyAdapter(items,this); //new出自定义的MyAdapter对象 listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { if(isMultiple){ CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkbox); TextView textView = (TextView) view.findViewById(R.id.text); if(checkBox.isChecked()){ checkBox.setChecked(false); adapter.checkedMap.put(position, false); textView.setTextColor(Color.WHITE); adapter.colorMap.put(position, Color.WHITE); int index = checked.indexOf(textView.getText()+""); checked.remove(index); }else{ checkBox.setChecked(true); adapter.checkedMap.put(position, true); textView.setTextColor(Color.RED); adapter.colorMap.put(position, Color.RED); checked.add(textView.getText()+""); } } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu subMenu = menu.addSubMenu("操作"); subMenu.add(0, 1, 0, "多选"); subMenu.add(0, 2, 0, "删除"); subMenu.add(0, 3, 0, "全选"); subMenu.add(0, 4, 0, "取消全选"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId()==1){ isMultiple = true; checked = new ArrayList<String>(); int index = adapter.getCount(); for(int i=0;i<index;i++){ adapter.visibleMap.put(i, CheckBox.VISIBLE); } adapter.notifyDataSetChanged(); }else if(item.getItemId()==2){ for(String text : checked){ int index = items.indexOf(text); items.remove(index); } isMultiple = false; adapter = new MyAdapter(items,MainActivity.this); listView.setAdapter(adapter); }else if(item.getItemId()==3){ isMultiple = true; checked = new ArrayList<String>(); int index = adapter.getCount(); for(int i=0;i<index;i++){ adapter.checkedMap.put(i, true); adapter.colorMap.put(i, Color.RED); adapter.visibleMap.put(i, CheckBox.VISIBLE); View view1 = adapter.getView(i, null, null); TextView textView = (TextView) view1.findViewById(R.id.text); textView.setTextColor(Color.RED); adapter.notifyDataSetChanged(); checked.add(textView.getText()+""); } }else if(item.getItemId()==4){ isMultiple = false; checked = null; int index = adapter.getCount(); for(int i=0;i<index;i++){ adapter.checkedMap.put(i, false); adapter.colorMap.put(i, Color.WHITE); adapter.visibleMap.put(i, CheckBox.INVISIBLE); adapter.notifyDataSetChanged(); } } return super.onOptionsItemSelected(item); }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机Android实现ListView控件的多选和全选功能实例
后端开发2023-05-31
Android ListView实现单选及多选等功能示例
后端开发2023-05-30
uniapp多选框全选功能的实现思路与方法实例
后端开发2024-04-02
Android中怎么利用RadioButton控件实现多选一功能
后端开发2023-05-30
Android实现便于批量操作可多选的图片ListView实例
后端开发2022-06-06
jQuery如何实现全选、反选和不选功能
后端开发2024-04-02
Android利用RecyclerView实现全选、置顶和拖拽功能示例
后端开发2023-05-31
Android实现滑动选择控件实例代码
后端开发2022-06-06
Android的ListView多选删除操作实现代码
后端开发2022-06-06
怎么使用JavaScript实现全选和反选的功能
后端开发2024-04-02
element table 表格控件实现单选功能
后端开发2024-04-02
Android组件实现列表选择框功能
后端开发2022-06-06
咦!没有更多了?去看看其它编程学习网 内容吧