首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Checkable ListView项目仍保持选中状态

对于Android Checkable ListView项目仍保持选中状态的问题,我们可以使用ListView的setSelection方法来实现。具体步骤如下:

  1. 在Java代码中,使用ListView的setSelection方法设置选中状态:
代码语言:txt
复制
listView.setSelection(position);
  1. 在XML布局文件中,使用android:choiceMode属性设置选择模式:
代码语言:txt
复制
<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:choiceMode="singleChoice" />
  1. 在Java代码中,使用ListView的setChoiceMode方法设置选择模式:
代码语言:txt
复制
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
  1. 当用户选择某个选项时,可以使用ListView的getCheckedItemPosition方法获取被选中的Item位置:
代码语言:txt
复制
int position = listView.getCheckedItemPosition();
  1. 可以使用ListView的getAdapter方法获取Adapter,然后通过Adapter的getItem方法获取被选中的Item:
代码语言:txt
复制
Adapter adapter = listView.getAdapter();
Item item = adapter.getItem(position);

以上是实现Android Checkable ListView项目仍保持选中状态的方法之一,可以根据具体情况进行调整和修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

支持多项选择的ExpandableListView

其列表项包含多个checkable的部件,当选择某一行时,该行包含的checkable的部件需要作出相应的变化; 3. 可以选择多个列表项,并且这些列表项可被读出 结果图: ? 实现: 1....结果发现一旦某个group做了expand或collapse操作后,所有列表项的check状态全没了。...后来发现原来group做了expand/collapse操作后,ListView会对其所有子项重新设置check状态,而check状态的值是存在ListView的一个SparseBooleanArray...所以,为了解决这个问题,我在adapter里增加了一个二维表用于记录每一列表项的check状态。...在执行 listView的setItemChecked函数时,其check状态是从这个自己创建的表中读出的,不能通过ListView的mCheckStates来读。

94120

Android样式的开发:selector篇

: 设置是否按压状态,一般在true时设置该属性,表示已按压状态,默认为false android:state_selected: 设置是否选中状态,true表示已选中,false表示未选中 android...:state_checked: 设置是否勾选状态,主要用于CheckBox和RadioButton,true表示已被勾选,false表示未被勾选 android:state_checkable: 设置勾选是否可用状态...,类似state_enabled,只是state_enabled会影响触摸或点击事件,而state_checkable影响勾选事件 android:state_focused: 设置是否获得焦点状态,true...,当前界面就会失去焦点;另外,ListView的ListItem获得焦点时也会触发true状态,可以理解为当前窗口就是ListItem本身 android:state_activated: 设置是否被激活状态...状态改变时,新状态展示时的淡入时间,以毫秒为单位 android:exitFadeDuration 状态改变时,旧状态消失时的淡出时间,以毫秒为单位 最后,关于ListView的ListItem样式,

2K30

按钮和复选框控件

) android:state_selected 设置是否选中状态,true表示已选中,false表示未选中。...或者一个listView等里面一个item被选择的时候的状态,因此这个属性设置在一般的组件上面是没有用的,只有设置有作为tab或item的布局里面的项时,这个属才起作用. android:state_checked...android:state_checkable 设置勾选是否可用状态,类似state_enabled,只是state_enabled会影响触摸或点击事件,而state_checkable影响勾选事件。...这个是当一个组件在可以checked或不可以checked的时候的状态,现在较常见的,能够checkable的组件有,单选项和多选项,所以这个属性只有设置在像这类组件上面才有作用的。...android:state_window_focused 设置当前窗口是否获得焦点状态,true表示获得焦点,false表示未获得焦点,例如拉下通知栏或弹出对话框时,当前界面就会失去焦点;另外,ListView

1.2K20

Android:Chip、ChipGroups、ChipDrawable

2、引入material兼容包 使用Chip时需要先引入兼容包,可分为两种情况, 一种是新建项目;一种是在现有的项目中引入 Chip. (1)、新建的项目 引入兼容包 implementation 'com.google.android.material...style="@style/Widget.MaterialComponents.Chip.Filter" 初始状态下, 不展示前后图标 点击之后会展示前面的选中图标,并且具有选中状态 通常应用在 ChipGroup...,有选中状态 通常可以作为 chipDrawable 使用,比如在填选邮件收件人时可以使用 <com.google.android.material.chip.Chip style="@...是否可以被选中 app:checkedIconVisible 选中状态的图标是否可见 app:checkedIcon 选中状态的图标 app:showMotionSpec 动效?...中 checkable 的值为true。

1.7K20

Android ListView那些事

ListView是我们在开发Android程序时用得比较多的一种widget,通常用来展示多条数据,这里,我对ListView的一些功能点作一个简单介绍。 1....Divider 通过android:divider XML属性来指定。 Divider可以颜色或者Drawable,当绘制内容时,ListView会自动地计算出divider的位置。...无法调用,请看如下情况: 如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而 ListView的Item能被选中的基础是它能获取...Focus,也就是说我们可以通过将ListView中Item中包含的所有控件的 focusable属性设置为false,这样的话ListView的Item自动获得了Focus的权限,也就可以被选中了。...ListView不要做的事 1)android:layout_height=”warp_content”?

38320

android:descendantFocusability

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,...原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击...这时候就可以使用descendantFocusability来解决啦,API描述如下: android:descendantFocusability Defines the relationship...viewgroup只有当其子类控件不需要获取焦点时才获取焦点 blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点 通常我们用到的是第三种,即在Item布局的根布局加上android

42620

android:descendantFocusability用法简析

导语 由于今天比较忙,今天就来介绍一下,我之前在博客中写过的东西吧,今天我们就来介绍一下android:descendantFocusability这个属性。...开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,...原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击...我相信这件事对于初学者来说,肯定遇到过 这时候就可以使用descendantFocusability来解决啦,API描述如下: android:descendantFocusability Defines...android:descendantFocusability=”blocksDescendants”的属性就好了。

84250

完全自定义样式的一句话实现RecyclerView的单选多选

哈哈,其实所谓的一句话哔哔哔都是合理封装后的结果 ,根据项目常用需求封装出常用的效果。...因为实际项目开发中单选和多选的样式多种多样,所以这个扩展性需要下放到调用者。全部代码和例子 先看图~ 单选样式图: ? sinle.jpg 多选样式图: ?...下面是关键代码,先让集合的数据结构继承Checkable的接口,相当于让item自己存储来自己的选中状态,然后界面根据对于pisition 的数据结构刷新自己的视图,从而实现完全的自定义选中状态的视图变化...mChecked); } } 然后先说简单的情况,首先这里要获取该item的点击事件,如果是多选的话,先存储点击这个位置的选中状态。...然后根据选中状态更新mCheckedItemCount数量,最后刷新视图。

99250

Android自定义ImageView实现点击两张图片切换效果

笔者在做一个项目中遇到的一个小阻碍,于是就实现了这个ImageView达到开发需求 情景需求 点击实现图片的切换 可能有人会说了,这还不简单?...name="checked" format="boolean"/ </declare-styleable </resources Class – SelectorImageView<此类实现了Checkable...接口,这里没什么特殊功能,而只是利用此接口中的方法而已,不实现我们也可以自己写 public class SelectorImageView extends ImageView implements Checkable...mDrawable); } } public void toggle(boolean checked){ /**外部通过调用此方法传入checked参数,然后把值传入给setChecked()方法改变当前的选中状态.../apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent

2.6K10

Android之drawable state各个属性具体解释

它使得一个图片能在不同的状态下显示不同的图案,比方一个Button,它有pressed。focused,或者其他状态,通过使用state list drawable。...你就能够为每种状态提供不同的图片。 先看一个范例: <?xml version="1.0" encoding="utf-8"?...通常与focused state同样,它是4.0的新特性 android:state_selected 被选中。...它与focus state并不全然一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键。被选中了。 android:state_checkable 组件能否被check。...(不是通过最佳匹配) 假设一个item没有不论什么的状态说明,那么它将能够被不论什么一个状态匹配。 具体的请看官方的API,那里写的更具体~!

57100

Android开发之漫漫长途 XIV——ListView

那么本篇我们来说一下ListView,虽然现在ListView逐渐的被RecyclerView取代,包括我自己的项目中也是使用的RecyclerView。那么为什么要分析一个“过时”的东西呢?...因为RecyclerView的前辈,许多遗留项目是基于ListView的,可能因为种种原因不能更换或者更换代价太大,那么我们如何在ListView的基础上优化App就成了我们不得不面对的问题。...在面试初中级Android开发工程师的时候,关于列表项展示这块基本上是必问的,你如果使用的ListView,那么ListView的性能优化,以及后面要讲到的下拉刷新上拉加载,基本也是必问的,因为这是你平常项目开发中也是肯定要考虑到的点...ListView的进阶使用 属性介绍 在这一小节中,介绍一些ListView 中的一些重要属性,有一些经常在项目开发中用到,而有一些不太常用,不过可以作为知识面的扩充 分割线 android:divider...那么由于前面在layoutChildren()方法当中调用了detachAllViewsFromParent()方法,这样ListView中所有的子View都是处于detach状态的,所以这里attachViewToParent

82630

Android Focusable in Touch Mode 介绍

当我们用手触摸屏幕选中内容后,会进入 Touch Mode; 但是当我们用触摸球左右移动(按下遥控器方向键也一样)时,就会离开 Touch Mode; 听起来似乎很简单,但是一个控件还有其他状态,当这些状态切换时...想象一下,有一个 ListView,当我们选中一个 Item 时,会进入 selected 状态 : ?...但是当我们按着的同时滑动手指,ListView 会滑动,同时你选中的这个 Item 会退出 selected 状态,你可以试试。 为什么会这样呢?...根据 官方文档 可以知道,framework 层为了降低有多种输入方式((比如同时支持触摸和遥控的智能电视)的情况下状态保持的复杂性,规定 In touch mode, there is no focus...→_→ Focusable in Touch Mode 一般情况下在 touch mode 时会退出 focused 状态,但是在有些情况下我们希望在 touch mode 时仍然保持 focused

1.3K60
领券