Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中改变视图_Android_Listview_Android Listview - Fatal编程技术网

在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 myExpListViewmyExpListView.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);