动态地向ListView行添加多个视图

时间:2014-07-10 09:23:45

标签: android listview android-arrayadapter

我正在尝试创建一个聊天客户端,我的用户可以在其中发送文本,图像,视频,音乐文件等。

我知道如何为列表添加动态行,但它只是将String添加到ArrayList并通过ArrayAdapter反映在列表中。对我来说这是不可预测的,用户可以添加字符串,视频,图像或音乐文件。我怎么能添加它们?

2 个答案:

答案 0 :(得分:3)

  1. 为您的音频列表项视图,视频列表项视图,字符串列表项视图制作不同的布局。
  2. 适配器的getView()方法内部检查要显示的内容类型。如果它的音频,从xml膨胀音频视图,添加相应的内容并返回正确的膨胀视图。
  3. 关键是能够找出getView()方法中的内容类型并相应地膨胀不同的视图。

答案 1 :(得分:0)

首先创建一个活动,以便获得Java和XML文件。对于这个XML文件,只需拖放listview即可。我们不会在这里做出任何动态。

然后,您需要为单行设计XML文件。为了您的目的,您可以创建一个新的XML布局并拖放textview,imageview,videoview等。最好将其设置为线性布局。

创建另一个java类。这是为了向列表中添加自定义项。根据元素是否包含某些值来添加元素。

在活动的java文件中,您将设置适配器链接设计的行与listview和我们的java文件的自定义列表。

访问以下链接。它会为您提供所有必要的代码。我希望它会对你有所帮助。

http://www.androidhub4you.com/2013/09/dynamic-list-view-demo-in-android.html

这对我来说真的很棒。现在你也可能发现像videoview或imageview占用空间这样的问题,即使你没有任何东西可以加入它。我建议删除每行不需要的视图。您可以在自定义java文件中添加删除视图代码。使用以下代码删除视图。

  

((ViewGroup)image_view_name.getParent())。removeView(image_view_name);

这里image_view_name是ImageView,VideoView或其他任何你想要的对象。