我开发了一个多项选择列表视图,我的问题是当我选中复选框时,我可以如何制作一个if状态或swicth。
我一直在互联网上寻找,但我找到了一些例子,但不是我想要的。
例如此代码:
public void onClick(View v) {
String selected = "";
int cntChoice = myList.getCount();
SparseBooleanArray sparseBooleanArray = myList.getCheckedItemPositions();
for(int i = 0; i < cntChoice; i++){
if(sparseBooleanArray.get(i)) {
selected += myList.getItemAtPosition(i).toString() + "\n";
}
}
Toast.makeText(AndroidListViewActivity.this, selected, Toast.LENGTH_LONG).show();
}
将多项选择中的所有选中复选框放入数组中。我的问题是我如何识别它是什么,并且取决于检查哪些是做某事。
感谢
答案 0 :(得分:0)
默认不是。检查源代码,您可以看到以下内容:
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 }
这里的问题是如果行不是标题既不是页脚,也不会调用超类(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