Android 隐藏/取消隐藏组中子对象的图像视图在子对象上单击Expandablelistview
我试图实现一个场景,在这个场景中,用户将在组中的许多选项中选择一个选项。见下图: 问题是,当我单击一个子对象时,它不会隐藏/取消隐藏已单击子对象的复选标记图像 我的代码如下: childLayout.xmlAndroid 隐藏/取消隐藏组中子对象的图像视图在子对象上单击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)
在儿童上单击侦听器
@覆盖
公共布尔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是的,您是正确的。这只是切换点击行中图像的状态。我还需要在该行的其他同级上保留隐藏复选框图像。你知道我怎样才能做到这一点吗?@anum90v
就是这一行。在循环的每次迭代中,您的循环都会获得同一行的复选框。所以当i
不等于childPosition
时,你就让它看不见了。哇,宾果!我太愚蠢了,我只是在重复同样的观点,这就是为什么我不能改变别人的状态。非常感谢您的帮助:)