如何在android中填充列表

时间:2012-01-09 09:36:53

标签: android listview tablerow

页面布局如下: 首先是标题图片 每行一个记录的表或列表 对于每个记录,它有一个图像和2个文本视图

如何设计此布局并动态填充数据,例如通过网络下载或数据文件(xml /文本格式)?

我无法弄清楚绑定是如何工作的,我应该使用带有表行的表格布局还是仅使用列表视图进行一些自定义?

5 个答案:

答案 0 :(得分:1)

实际上,这将是一个广泛的问题,因为您要求从网络获取数据,并且需要自定义列表视图以显示数据。

  1. 从Web获取数据:您还没有提到它是SOAP还是RESTful Web服务?您还将收到回复的内容,即XML或JSON?为了最好,我会建议RESTful与JSON。

  2. 自定义ListView:我可以为您提供自定义ListView的答案,因为您可以通过扩展BaseAdapter来创建自定义适配器类,实现自定义行通胀的onView()方法布局文件(1 ImageView + 2 TextViews),请检查:Android custom adapter for ListView

答案 1 :(得分:0)

根据您的要求,ListView会很好,您需要使用适配器将数据与视图绑定。 请阅读listview和适配器以实现这些。

答案 2 :(得分:0)

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:background="@drawable/img_list_background_repeater"
android:layout_height="wrap_content"
android:orientation="vertical" >   

<TextView  
    android:id="@id/android:empty"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/empty_category"/>

<ListView
    android:id="@id/android:list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />          

答案 3 :(得分:0)

没有人会给你所有的java类和xml。

你构建一个xml。然后使用适配器尝试将数据实现到列表视图。

如果那时你有任何问题,请提供你的代码。然后就可以解决了。

答案 4 :(得分:0)

  

页面布局是......它有一个图像和2个文本视图。

阐述jitendra的回答:是的,ListView似乎是这个设置的理想选择。 TableView是可行的,但对于行/列结构来说真的更理想,并且听起来不像你需要的那样。

  

如何设计此布局......?

您可以使用android XML来命名和设置元素的样式。最佳做法是为包含列表本身的屏幕制作布局文件。制作第二个布局文件以存放通用记录。换句话说,您通常将列表与列表及其容器分开设计。在Android Developer的网站上有几个关于Layouts的精彩教程。

  

我如何...动态填充数据?

这个问题分为两部分。首先,在代码中,您需要某种适配器来将数据转换为实际的视图。 ListView将链接到适配器。适配器将膨胀您为Record创建的Layout XML。不同的适配器具有不同的自定义视图的准则。正如Paresh所提到的,BaseAdapter是一个很棒的类,但你真的应该看看提供的不同适配器,看看它们是否已满足你的需求。

其次,从Web获取数据... 1)在很大程度上取决于您的Web服务器以及它如何分发数据。没有更多信息,您不可能得到任何可靠的答案。我们只能提出建议。 2)如果您通过数据文件,事情会发生很大变化。您可以从围绕数据设计的自定义类中创建对象数组。如果您需要排序,树可能会更好。如果每条记录都有一个唯一的密钥,那么Set或List可能对您有好处。基于您的问题,我发现自己假设您不熟悉Android开发,因此我建议将数据文件加载到带有ArrayAdapter的数组中。这至少可以帮助您更熟悉您自己的项目以及它与Android环境的关系。

  

我无法弄清楚绑定是如何工作的

不幸的是,这取决于您的View及其适配器。 CursorAdapter大部分数据绑定在适配器的bindView()方法中,但会在getView()方法中对视图进行扩充。 BaseAdapteronView()方法中执行此操作。如果您需要更熟悉适配器及其功能,请阅读Android Developer Resources。他们有很棒的样本和代码。此外,在那里搜索“自定义适配器”,您将链接到 ton 其他教程。

此时,我强烈建议您采取两项措施。 1)做出一些决定。您可以从网络 获取数据文件。如果你想稍后再做,那很好。掌握一个,我们可以更有效地帮助您。 2)使用Google和Android Developer Resources搜索功能以及定义项目的短语。如果你添加教程或示例这个词,你一定会找到很多可以帮助你做出决定的,这样我们就可以定制一个满足你需求的解决方案。

希望这有帮助!

FuzzicalLogic