繁体   English   中英

Android,展开式列表视图,从单个条目中删除子级

[英]Android, Expandable List View, Remove child from single entry

目前,我在从可扩展列表视图中删除UI元素时遇到问题。 我在我的getChildView()中使用它

View button = v.findViewById(R.id.moreInfoButton1);

if(button != null)
{
    ((ViewManager)button.getParent()).removeView(button);
}

现在,我意识到我实际上是从布局模板中删除了元素,这意味着在扩展另一个元素时,应用程序崩溃,因为找不到按钮。 因此,有一种方法可以仅从单个条目中删除元素。

您可以在数据集中设置一个标志,并且当您想要删除(隐藏)该元素时,将该元素的标志设置为true ,然后调用notifyDataSetChanged并在您的child的getView方法中,在放大视图时检查该标志如果是true请不要显示该元素!

例如:

在您的适配器中:

...
@Override
public View getChildView(int groupposition, int childpostion, boolean isLastchild, View convertview,
        ViewGroup parent) {
   ...
   if (data.get(groupposition).get(childposition).getFlag()) {
        yourView.setVisibility(View.GONE);
   } else {
        yourView.setVisibility(View.VISIBLE);
   }
   ...
}  

并将此字段添加到您的数据中:

public class ChildData {
   ...
   boolean flag;
   // getter and setter 
}

以及当您想要切换特定项目的可见性时:

yourExpandableListData.get(parentPosition).get(childPosition).setFlag(true);
yourExpandableListAdapter.notifyDataSetChanged();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM