【发布时间】:2018-03-19 01:53:51
【问题描述】:
我正在尝试制作一个聊天客户端,让我的用户能够发送文本、图像、视频、音乐文件等。
我知道如何为列表动态添加行,但是它只是将字符串添加到 ArrayList 并通过 ArrayAdapter 反映在列表上。对我来说这是不可预测的,用户可以添加字符串、视频、图像或音乐文件。我怎样才能添加它们?
【问题讨论】:
标签: android listview android-arrayadapter
我正在尝试制作一个聊天客户端,让我的用户能够发送文本、图像、视频、音乐文件等。
我知道如何为列表动态添加行,但是它只是将字符串添加到 ArrayList 并通过 ArrayAdapter 反映在列表上。对我来说这是不可预测的,用户可以添加字符串、视频、图像或音乐文件。我怎样才能添加它们?
【问题讨论】:
标签: android listview android-arrayadapter
关键是要能够在 getView() 方法中找出内容的类型,并相应地为不同的视图充气。
【讨论】:
首先创建一个活动,以便您可以同时获取 Java 和 XML 文件。对于这个 XML 文件,只需拖放一个列表视图。我们不会在这里做任何动态。
然后您需要为单行设计 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 或任何其他你想要的对象。
【讨论】: