【问题标题】:Use XML to specify elements of a ListView (or other similar component)使用 XML 指定 ListView(或其他类似组件)的元素
【发布时间】:2012-10-30 12:06:52
【问题描述】:

Android 文档暗示我在声明 UI 时应该更喜欢使用 XML:http://developer.android.com/guide/topics/ui/declaring-layout.html

无论您是否同意它暗示这一点,我个人的偏好尽可能使用 XML。

但是,对于 ListView,文档仅说明了如何以编程方式填充它:http://developer.android.com/guide/topics/ui/layout/listview.html

比如说,我如何仅使用 XML 布局文件创建一个包含三个元素的 ListView?这是不可能的还是不可取的?

习惯于为桌面开发,我不习惯被要求手动创建 UI 容器的元素,所以我很困惑我是否缺少某些东西或 Android 中的东西不同。

【问题讨论】:

    标签: android eclipse android-layout listview android-2.2-froyo


    【解决方案1】:

    ListView 和类似的视图通常会接收来自动态源(如 SQLite 数据库)的数据。在这种情况下,填充它的唯一方法是编程。

    但是,如果您有一个静态元素列表,您可以通过 XML 使用以下属性填充它:android:entries。该值将是一个数组资源。

    例子:

    <ListView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:entries="@array/your_array"
    />
    

    【讨论】:

    • 如何定义your_array? (不,我不需要 SQL 数据库,数据不会是动态的。)
    • 查看文档:String Array
    【解决方案2】:

    ListView 使用ListAdapter,它为ListView 中的每个项目提供View。这个项目视图的 模板 可以很好地定义为另一个 XML 布局。就数据而言,您可以将其作为字符串数组等放在res/values 文件夹中的 XML 文件中。甚至可以从其他文件中解析。

    一个完全硬编码的布局将是一个 LinearLayout 放在 ScrollView 中。然后你可以给LinearLayout添加很多子元素。

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 2011-11-14
      • 2017-07-17
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 2021-03-06
      • 2021-12-09
      • 1970-01-01
      相关资源
      最近更新 更多