Android 使用AlertDialog实现多选并保存选中状态
2017-11-16 15:32
344 查看
先对要实现的效果做出描述:1、首次弹出对话框,如果有被选中的item,item的值设为true
2、可以随意选中和取消item
3、记录选中的状态
效果图:
2、可以随意选中和取消item
3、记录选中的状态
效果图:
public class MyActivity extent Activity{ private Map<Integer, String> map= new HashMap<>(); protected void onCreate(Bundle savedInstanceState){ setContentView(R.layout.main); //AVo.list ,BVo.list 是解析json获得的数据(一般是集合) StringBuffer buffer = new StringBuffer(); for (int j = 0; j < AVo.list.size(); j++) { for (int q = 0; q < BVo.list.size(); q++) { if (BVo.list.get(q).equals(AVo.list.get(j))) { map.put(j, BVo.get(q)); buffer.append(BVo.list.get(q) + ","); } } } button.setonClickListener(new View.OnClickListener(){ showDialog(); }); } private void showDialog() { //把获取的json数据解析后赋值给数组 String[] data=new String[AVo.list.size()]; boolean[] isCheck = new boolean[AVo.list.size()]; for(int i =0;i<AVo.list.size();i++){ data[i]=AVo.list.get(i); if(map.containsKey(i)){ if(map.get(i).equals(AVo.list.get(i))){ isCkeck[i]=true; } 4000 } } AlertDialog.Builder ab = new AlertDialog.Builder(TaskDetailActivity.this); ab.setTitle("请选择位置"); ab.setCancelable(false); ab.setMultiChoiceItems(data, isCheck, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i, boolean b) { isCheck[i] = b; } }); ab.setPositiveButton("确定", new DialogInterface.OnClickListener() { StringBuffer buffer = new StringBuffer(); StringBuffer buffer1 = new StringBuffer(); @Override public void onClick(DialogInterface dialogInterface, int i) { for (int q = 0; q < isCheck.length; q++) { if (isCheck[q] == true) { buffer.append(data[q] + " "); buffer1.append(data[q] + ","); map.put(q, data[q]); } else if (map.containsKey(q)) { map.remove(q); } // isCheck[q] = false; } if (buffer.toString() != "") { String str = buffer1.toString(); textview.setText("位置:" + buffer); } else { String str = buffer1.toString(); buffer.delete(0, buffer.length()); textview.setText("位置:" + buffer); } } } ); ab.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } } ); ab.create().show(); } }
相关文章推荐
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用AlertDialog实现的信息列表单选、多选对话框功能
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信