在android中改变视图
我有一个名为在android中改变视图,android,listview,android-listview,Android,Listview,Android Listview,我有一个名为myView的ListView,我通过说myView.setAdapter(peodecapter)和myView.setAdapter(animalAdapter)并刷新ListView,让它显示不同类型的数据 如果我想显示一个ExpandableListView,适配器不是ListView,所以我不能说myView.setAdapter(myExpListView)。我收到一个错误,说它不兼容 因此,我没有将适配器设置为myView以显示可展开列表视图,而是创建了一个完整的其他视
myView
的ListView
,我通过说myView.setAdapter(peodecapter)
和myView.setAdapter(animalAdapter)
并刷新ListView,让它显示不同类型的数据
如果我想显示一个ExpandableListView
,适配器不是ListView,所以我不能说myView.setAdapter(myExpListView)
。我收到一个错误,说它不兼容
因此,我没有将适配器设置为myView
以显示可展开列表视图,而是创建了一个完整的其他视图,如:ExpandableListView myExpListView我得到了我的数据集,并像这样设置了适配器:myExpListView.setAdapter(myExpListView)
,它可以工作
我唯一的问题是:我知道如何交换适配器以显示不同的数据,但如何交换视图?那么,如何在不启动其他活动的情况下从myView
切换到myExpListView
谢谢。控制视图的标准方法是通过其可见性方法:
myView.setVisibility(View.VISIBLE);
myExpListView.setVisibility(View.INVISIBLE);
及
研究碎片,你会喜欢它们的用处。@EvanB我会读到你所说的这些“碎片”。有特别有用的链接吗?除了google?@harikris有一个快速解决您问题的方法,但是如果您正在寻找一个简单、可扩展的解决方案,这里有一个链接:@EvanB感谢您的链接,我阅读片段是因为我确信将来会使用它们,但我的项目很小,所以我只打算使用可见性方法。@请编辑您的问题:替换myExpListView.setAdapter(myExpListView)和myView.setAdapter(myExpListView)使用正确的适配器实例名称-不提供视图作为setAdapter()的参数。这看起来是一个非常简单的解决方案。这和EvanB建议的使用片段有什么不同吗?片段非常好。和往常一样,根据您的需求,每个工具都有使用的地点和时间。如果您只需要一种简单的方法来管理/切换这两个视图,那么我上面建议的方法是高效且易于维护的。
myExpListView.setVisibility(View.VISIBLE);
myView.setVisibility(View.INVISIBLE);