2013-05-30 40 views
0

我想知道这是可能的Android。我正在使用支持库v4。 问题我遇到的情况是,我必须在两个使用两个适配器的活动中显示相同的自定义视图,一个适配器支持视图分页器,另一个适配器支持网格。基本上有一个网格图像,你可以查看,然后当你点击元素时,它应该打开另一个活动,你可以在视图寻呼机中查看相同的图像。我尝试了在返回片段onCreateView方法相同的意见,但得到的孩子已经有了,我会想到父母,消除视后首先使用在两个适配器中共享相同的视图

((ViewGroup) myImageView.getParent()).removeView(myImageView); 

我得到java.lang.UnsupportedOperationException:removeView(查看)不支持AdapterView异常,我不希望发生。知道我卡住了,因为我不想创建新的视图,但使用现有的两个适配器。 我的问题是: 是否可以显示相同的视图或我是完全错误的轨道上,并应该实现这个“适配器链接”一些其他方式?

回答

1

是否可以显示相同的视图或我是完全错误的 轨道,并应实现此“适配器链接”一些其他方式?

无法分享两个活动之间的意见,而且您也不想这样做。即使您使用带碎片的单个活动,也不应共享适配器的视图,因为这可能会导致出现更多问题。

做你想做的事情的正确方法是在两个你想要相同数据的地方重新创建数据,如果你使用一个适配器,这应该很容易。您基本上需要在用于GridView的普通适配器中对ViewPager的页面使用相同的布局。

我得到java.lang.UnsupportedOperationException:removeView(查看)不 中,我并没有预料到会发生适配器视图例外支持。

AdapterView孩子通过适配器管理它的儿童和像addView()removeView()方法不为他们实现。

+0

谢谢你的回答。这确实指向了我正确的方向,我现在要去测试它。你能不能更具体地说:“做你想做的事情的正确方法是在两个你想要相同数据的地方重新创建数据,如果你使用一个适配器,这应该很容易。你基本上需要使用用于GridView的普通适配器中ViewPager页面的布局相同。“这里的问题可能是我的自定义对象包含他们的数据和视图,例如class拥有String imageUrl和ImageView FullImage。 – PSIXO

+0

@PSIXO您的自定义对象**不应包含“ImageView”,因为它不代表模型。您应该让模型类只包含数据,并将'ImageView'留给适配器来构建。然后,就像我已经说过的,在'ViewPager'的适配器和'GridView'的适配器中使用相同的布局。 – Luksprog

+0

我尝试了很多东西,但最终实现了类似于您的建议,所以感谢您的帮助。此外,AdapterView的子节点通过适配器管理它的子节点,像addView()或removeView()这样的方法没有为它们实现。对我来说是一个至关重要的信息,因为我不知道这一点。对于这些,你可以得到正确的答案。我只是不明白关于“在ViewPager的适配器和GridView的适配器中使用相同的布局”的部分,所以如果你可以给我更多的信息,这将是有益的。另外,你如何链接适配器的位置? – PSIXO

相关问题