重新使用适配器来扩展listview外部的视图

时间:2014-08-27 16:31:00

标签: android listview android-adapter

我使用BaseAdapter来扩展列表视图,列表中的每个项目都非常复杂,它有多个图像和文本,因此适配器有很多代码。我想要实现的是当用户按下列表中的某个项目时,会启动一个新活动,其中包含有关所选项目的详细信息,但我也想将该项目作为摘要绘制,所以我想知道是否有一种方法可以使用我已经只重复它的代码来扩充视图,我想到了这样的事情:

MyAdapter adapter = new MyAdapter(MyActivity.this, arrayInfo);
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
        .findViewById(android.R.id.content)).getChildAt(0);
adapter.getView(position, null, viewGroup);

但它不起作用,我甚至不知道我尝试做的事情是否有意义,或者是否还有另外一种方法可以做到。

2 个答案:

答案 0 :(得分:1)

  

如果有其他方法可以做到

选项#1:将inflate-and-widget-populate逻辑移动到某个地方的static方法,由适配器和其他代码使用。

选项#2:创建一个自定义ViewGroup来处理通货膨胀(可能是小部件数量的某些方面),然后使用适配器中的ViewGroup以及任何其他需要的地方。

选项#3:创建一些其他实用程序类,负责扩充此布局并填充这些窗口小部件,然后使用适配器和其他位置的该实用程序类。

可能还有其他选择。我不会尝试直接使用Adapter,除非与AdapterView结合使用,特别是Adapter没有真正的模型集合可以适应。

答案 1 :(得分:0)

  

我想要实现的是当用户按下某个项目时   列表,启动了一项新活动,其中包含有关所选项的详细信息   项目

创建Intent以启动新的Activity,并在Intent中使用putExtra()方法放置要显示其详细信息的列表项的数据。在已启动的Activity中,使用getIntent()检索此Intent对象,然后从中获取数据。