android中如何在Listview中改变成多选模式?

android中如何在Listview中改变成多选模式?,第1张

不清楚你是不是这个意思,就是想给ListView加上多选的设置,可以同时选几个条目,我是这样做得布局还是第一个的布局,只要给ListView设置一下,

mListView.setChoiceMod(ListView.CHOICE_MODE_MULTIPLE_MODAL)

mListView.setMultiChoiceModeListener(mListener)

/**

* 列表监听器

*/

private MultiChoiceModeListener mListener = new MultiChoiceModeListener() {

/**

* ActionMode创建之前所做的初始化工作

*/

@Override

public boolean onPrepareActionMode(ActionMode mode, Menu menu) {

return true

}

/**

* ActionMode使用后的销毁工作

*/

@Override

public void onDestroyActionMode(ActionMode mode) {

}

/**

* 创建ActionMode,菜单项加载

*/

@Override

public boolean onCreateActionMode(ActionMode mode, Menu menu) {

mode.getMenuInflater().inflate(R.menu.action_menu, menu)

Log.e(MainActivity.TAG, "onCreateActionMode")

return true

}

/**

* 点击ActionMode选项后触发事件

*/

@Override

public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

return true

}

/**

* 做一些当选中项目/取消项目的记录工作

*/

@Override

public void onItemCheckedStateChanged(ActionMode mode, int position,

long id, boolean checked) {

}

}

就可以了,这里我做的是ActionMode,正好实现了这个功能,不知道能不能帮到你

这个很简单吧

你要做的是一个写一个xml,将d出框的ListView布局画好

创建Adapter 就是这个列表的适配器,在这个适配器里记录checkBox 的状态(选中和未选中)

用布局填充器,将这个xml创建出来,并给这个listView应用适配器

创建一个AlertDialog 并setView 将这个创建出来的View应用到d出框

给AlertDialog 注册两个事件确定和取消按钮,

确定时,从Adapter 中取出选中的值

代码实现起来有点多,自己多动手吧,一点都不难,而且你还可以封装成一个标准的工具

先对要实现的效果做出描述:1、首次d出对话框,如果有被选中的item,item的值设为true

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 = 0j <AVo.list.size()j++) {

for (int q = 0q <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 =0i<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

}

}

}

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 = 0q <isCheck.lengthq++) {

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()

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

打开CSDN,阅读体验更佳

Android中记忆CheckBox复选框上一次的勾选状态_YoungForY的博客-CSDN博...

Android中记忆CheckBox复选框上一次的勾选状态 1.分析 对应代码部分: 1.保存勾选状态/未勾选状态(✅) if(cb.isChecked()){ getSharedPreferences("checkInfo",0).edit().putBoolean("cbState",true).commit()// TODO: 201...

Android 编程笔记 select的使用,Button的三种状态(未点击,点击,选中保持...

做Fragment导航的时候,用Button做的标签,需要Button有一个选中保持的状态,网上找了一些资料 ,解决了问 registered_seletor.xml <item android:drawable="@color/registered_color_bg"android:state_pressed="true"></item><item andro...

自定义Dialog里listview的单选、多选

自定义Dialog里listview的单选、多选

android保存按钮状态,Android:保存单选按钮的状态

嗨,我正在尝试为Android创建一个应用程序,为了开发它,我需要浏览不同的页面和问题.对于这个任务,我已经定义了一个带有一些radiobutton的radiogroup.我想要获得的是每个问题都回答了radiobutton,当用户进入不同的页面时,可以检索到该值.我已经尝试过这个代码,如果有一个选定的单选按钮,则没有创建新的单选按钮(radiobuttons选中false).但是,使用此代码时,...

继续访问

记录性别选择TextView,选中状态_dandelionsnow的博客_textview...

然后通过书写background 和color 来展示是否选中: 具体代码如下: xml: <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dp_50" android:layout_marginTop="@dimen/dp_20" ...

android view选中状态,RecyclerView选中_淡定情的博客

###**RecyclerView选中状态** ~~~ package com.wxx.fragmentaction.recyclerimport android.content.Contextimport android.graphics.Colorimport android.support.v7.widget.RecyclerView...

最新发布 安卓:android实现d出 AlertDialog选择提示框

其实AlertDialog可以添加其他的功能选项,比如在提示框里面绑定xml布局显示,再比如定义多个选择按钮什么的,这些大家可以自行学习。本文实例为大家分享了anadroid实现d出提示框的具体代码,供大家参考,具体内容如下。提示框是利用AlertDialog实现的。代码:(设置在button的点击事件中)

继续访问

element-UI表格中多选框回显默认选中

1、通过@selection-change="handleSelectionChange"获取勾选的数据 2、通过this.$refs.multipleTable.toggleRowSelection(row, true)将数据回显 注意:toggleRowSelection方法的row数据必须是从tableData中获取 初级表格 <template><div><el-table ref="multipleTable" .

继续访问

Android自定义单选,自定义选中状态_weixin_33755847的博客

Android自定义单选,自定义选中状态 如图,此布局用GrildView实现,d出框由Activity的dialog样式实现。 屏蔽系统GrildView点击背景黄色: grildview.setSelector(newColorDrawable(Color.TRANSPARENT))...

Android ListView点击确认时保留选中状态_CarolineVampire的博客-CSDN...

android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:visibility="gone" />2.ListView的Item上加上背景: android:background="@drawable/item_bg" 3.item_bg的内容如下: ...

Android使用AlertDialog的信息列表单选、多选对话框

在使用AlertDialog实现单选和多选对话框时,分别设置setSingleChoiceItems()和setMultiChoiceItems()函数。 下面看主要的代码: 数据源数组: 单选-->晴 多云 小雨 中雨 选-->羊草 牛草

继续访问

Android的AlertDialog详解(7种方式)

需要注意的两点: 1.在setIcon时,需要使用setTitle方法,否则icon不会显示 2.如果同时调用setMessage 和 setItems(或者setSingleChoiceItemssetMultiChoiceItems)函数会导致dialog没有显示内容 ============================================================ AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDi..

继续访问

android listview checkbox 选中状态,Android ListView专题之十 c...

翻屏后 向上翻屏,选择的还是2,3,4,5 其实就是红色的地方是关键点,用了一个集合来保存cb的选择状态,其它的关于viewHolder和和inflate的布局什么就不说了 public class ListViewCheckboxActivityextends ...

android 取消选中状态,Android:显示/隐藏偏好检查/取消选中其他CheckBox...

我试图完成这样的事情: 当我检查CheckBoxPreference'A'时,其他首选项('B')显示在A下方, 当我取消选中'A ',首选项'B'隐藏...Android:显示/隐藏偏好检查/取消选中其他CheckBoxPreference 因此,一般来说,它应该像依赖项一样工作,但不仅...

安卓AlertDialog实现多选列表项的对话框

代码如下: /显示带多选列表项的对话框/ Button btn4 = (Button) findViewById(R.id.button4)btn4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //记录列表项的状态 flog = new boolean[]{tru...

继续访问

AlertDialog选择后用SharedPreferences保存选择状态

//初始化数据private String[] sexString = {"男","女"}//初始化spprivate SharedPreferences sp = getSharedPreferences("config",MODE_PRIVATE)final AlertDialog.Builder builder = new AlertDialog.Builder(context)bui...

继续访问

android+保存按钮状态,listview中radiobutton选中状态保存

今天就谈一谈怎么解决listview滑动时radiobutton状态保留的问题。其实我觉得就是一句话,position串了~~。看看我的解决办法吧!1.首先定一个map,用来封装当前选中的radiobutton2.给装着radiobutton的爹-radiogroup弄个tag值3.判断当前的position==tag与否。以上三点就是我解决问题的思路。源代码:publicclass...

继续访问

热门推荐 Android ListView控件选中item项,并保持选中状态

这几天在做公司的项目,有这样一个需求,就是在listView里,点击item子项的时候需要保持item子项的选中状态,上网搜了一些资料,最后也实现了。现在就记录下来,一方面方便以后自己回顾好复习温故,另外也和大家分享。 不多说了,上代码。先贴xml布局文件的。

继续访问

120-Android非常好的简便的选择目录并保存文件的方式

先打开文件管理器 选择目录 fun saveFile(view: View) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) intent.addCategory(Intent.CATEGORY_DEFAULT) ...

继续访问

Android实现文件目录的选择并保存到SharedPreferences中(适配6.0后的权限)

1>使用AndPermission权限开源框架 /*permission*/ compile 'com.yanzhenjie:permission:1.0.6'2>使用AndPermission申请权限 AndPermission.with(this) .requestCode(100) //requestCo...

继续访问

android 自定义 单选对话框,Android使用AlertDialog实现的信息列表单选、多选对话框功能...

在使用AlertDialog实现单选和多选对话框时,分别设置setSingleChoiceItems()和setMultiChoiceItems()函数。下面看主要的代码:数据源数组:晴多云小雨中雨羊草牛草Activity中的主要代码:点击事件:case R.id.edt_sampleWeather:// 天气选取String[] arrWeather = getResources().getSt...

继续访问

Android ListView选中状态

ListView的选中状态的实现实际上是点击时刷新Listview 将点击行设置为高亮显示,其他行刷新设置为原来的状态。 本文的ListView中是一个简单的TextView ,为TextView设置一个Selector 设置普通状态和选中状态。 Item的写法和一般的没有区别,将android:background设置为上面的Selector就行了。

继续访问

Android进阶之路 - 快速实现购物车功能

目前没有把全选,反选,全部取消的功能集成到此Demo中,只实现了基本的选取记录与记录功能。开发中心思维: 使用map集合来存储对应角标的对应状态,一般为Mapcompile 'com.android.support:recyclerview-v7:24.2.1'Effect :MainActivity :package com.yl.checkbox.checkboxdataimport an

继续访问

AlertDialog.Builder中的setMultiChoiceItems中的事件处理

因为实习项目中涉及到类似于时钟设置闹钟重复时间的原因需要使用对话框的方式呈现,由于DialogFragment目前还没实验出嵌套Fragment的方法,所以暂时先用AlertDialog.Builder中的setMultiChoiceItems代替,由于网上搜索时都只有显示的代码,没有关于点击事件进行 *** 作的示例,所以根据项目自己整理了一下 效果图: 逻辑:用户点击取消则销毁对话框,点击

继续访问

android多选对话框应用,Android使用AlertDialog实现的信息列表单选、多选对话框功能...

在使用alertdialog实现单选和多选对话框时,分别设置setsinglechoiceitems()和setmultichoiceitems()函数。下面看主要的代码:数据源数组:晴多云小雨中雨羊草牛草activity中的主要代码:点击事件:case r.id.edt_sampleweather:// 天气选取string[] arrweather = getresources().getst...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12112169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存