Android 隐藏/取消隐藏组中子对象的图像视图在子对象上单击Expandablelistview

Android 隐藏/取消隐藏组中子对象的图像视图在子对象上单击Expandablelistview,android,hide,android-imageview,expandablelistview,children,Android,Hide,Android Imageview,Expandablelistview,Children,我试图实现一个场景,在这个场景中,用户将在组中的许多选项中选择一个选项。见下图: 问题是,当我单击一个子对象时,它不会隐藏/取消隐藏已单击子对象的复选标记图像 我的代码如下: childLayout.xml 在儿童上单击侦听器 @覆盖 公共布尔onChildClick(ExpandableListView父视图,视图v, int groupPosition、int childPosition、long id){ CreatePizzaAdapter=(CreatePizzaAdapter)

我试图实现一个场景,在这个场景中,用户将在组中的许多选项中选择一个选项。见下图:

问题是,当我单击一个子对象时,它不会隐藏/取消隐藏已单击子对象的复选标记图像

我的代码如下:

childLayout.xml


在儿童上单击侦听器

@覆盖
公共布尔onChildClick(ExpandableListView父视图,视图v,
int groupPosition、int childPosition、long id){
CreatePizzaAdapter=(CreatePizzaAdapter)父级。getExpandableListAdapter();
对于(int i=0;i
我不知道我做错了什么。。。请帮帮我。。谢谢如果您需要任何其他代码,请告诉我。

试试以下方法:

@Override
public boolean onChildClick(ExpandableListView parent, View v,
                int groupPosition, int childPosition, long id)
{
  int iCount;
  int iIdx;
  Object item;

  CreatePizzaAdapter adapter = (CreatePizzaAdapter) parent.getExpandableListAdapter();

  iCount = adapter.getChildrenCount(groupPosition);
  for ( iIdx = 0; iIdx < iCount; ++iIdx )
  {
    item = adapter.getChild(groupPosition, iIdx);
    if ( item != null )
    {
      // Here you would cast item to the appropriate type for this row

      if ( iIdx == childPosition )
      {
        // Here you would toggle checked state in the data for this item
      }
      else
      {
        // Here you would clear checked state in the data for this item
      }
    }
  }
  parent.invalidateViews(); // Update the list view
}
@覆盖
公共布尔onChildClick(ExpandableListView父视图,视图v,
int groupPosition、int childPosition、long id)
{
int iCount;
int iIdx;
目标项目;
CreatePizzaAdapter=(CreatePizzaAdapter)父级。getExpandableListAdapter();
iCount=adapter.getChildrenCount(groupPosition);
对于(iIdx=0;iIdx
为什么需要循环浏览项目。
v
没有被点击的那一行吗?也许我现在明白你想做什么了。让我知道这是否正确。如果点击了未选中的扩展项,则要选中该项并取消选中组中的所有其他项。@JimRhodes是的,您是正确的。这只是切换点击行中图像的状态。我还需要在该行的其他同级上保留隐藏复选框图像。你知道我怎样才能做到这一点吗?@anum90
v
就是这一行。在循环的每次迭代中,您的循环都会获得同一行的复选框。所以当
i
不等于
childPosition
时,你就让它看不见了。哇,宾果!我太愚蠢了,我只是在重复同样的观点,这就是为什么我不能改变别人的状态。非常感谢您的帮助:)