- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
是否可以在 ExpandableListView
上使用 android:choiceMode="multipleChoice"
或 setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)
制作多选列表>?我可以在普通 ListView
上使用 CheckBox
es 执行此操作,但它似乎不适用于 ExpandableListView
。在后者中,单击列表项(父项或子项)不会像在前者中那样影响复选框。
我注意到可以准确地单击复选框以使其切换,但这是一个非常小的目标。
最佳答案
默认情况下没有。查看源码可以看到如下内容:
512 @Override
513 public boolean performItemClick(View v, int position, long id) {
514 // Ignore clicks in header/footers
515 if (isHeaderOrFooterPosition(position)) {
516 // Clicked on a header/footer, so ignore pass it on to super
517 return super.performItemClick(v, position, id);
518 }
519
520 // Internally handle the item click
521 final int adjustedPosition = getFlatPositionForConnector(position);
522 return handleItemClick(v, adjustedPosition, id);
523 }
533 boolean handleItemClick(View v, int position, long id) {
534 final PositionMetadata posMetadata = mConnector.getUnflattenedPos(position);
535
536 id = getChildOrGroupId(posMetadata.position);
537
538 boolean returnValue;
539 if (posMetadata.position.type == ExpandableListPosition.GROUP) {
540 /* It's a group, so handle collapsing/expanding */
...
579 } else {
580 /* It's a child, so pass on event */
581 if (mOnChildClickListener != null) {
582 playSoundEffect(SoundEffectConstants.CLICK);
583 return mOnChildClickListener.onChildClick(this, v, posMetadata.position.groupPos,
584 posMetadata.position.childPos, id);
585 }
586
587 returnValue = false;
588 }
589
590 posMetadata.recycle();
591
592 return returnValue;
593 }
这里的问题是如果行既不是页眉也不是页脚,父类(super class)(android.widget.AbsListView)的方法performItemClick将不会被调用,这是考虑选择模式的方法: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/widget/AbsListView.java#AbsListView.performItemClick%28android.view.View%2Cint%2Clong%29
因此,唯一的解决方案是自己在 onChildItemClickListener 中实现选择逻辑。以下是多项选择的示例代码:
https://github.com/jiahaoliuliu/ExpandableListViewMultipleChoice
关于android - choiceMode 是否与 ExpandableListView 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2815654/
我正在尝试基于 example code 构建一个拆分 Pane 在关于 fragment 的 Android 文档末尾提供,基本上是一个包含两个 fragment 的 LinearLayout(所有
是否可以在 ExpandableListView 上使用 android:choiceMode="multipleChoice" 或 setChoiceMode(ListView.CHOICE_MOD
我在尝试清除 ListView 中项目的选择(选择)时遇到了一个奇怪的行为。该代码运行良好,具有允许(一次在 CHOICE_MODE_MULTIPLE 中)通过点击选择单个项目、全选、全选和反转当前选
我在尝试使用 Android 的 ListView 多选模式时遇到了非常困难的时期。这是我正在尝试做的事情: 我在游戏设置屏幕中有一个“玩家”按钮。单击此按钮时,它会在 CheckedTextView
我通过阅读 http://developer.android.com/training/implementing-navigation/nav-drawer.html 制作了 NavigationDr
我有一个 ListView,通常是 singleChoice choiceMode。当用户长按某个项目时,我想进入一个允许选择多个项目的操作模式,以便他们可以对任何选定的项目执行操作。 我可以配置 L
我是一名优秀的程序员,十分优秀!