动态添加xml到布局

时间:2014-01-07 19:47:41

标签: java android xml android-layout

我有一个(复杂的)RelativeLayout,带有一些TextViews,ImageViews和一个Button。创建此布局的频率取决于数据库中的数据。我从列表中获取这些数据并希望动态显示,我该怎么办?

动态添加的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/zusatz_content" >

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="20dp"
    android:layout_marginRight="15dp"
    android:layout_marginLeft="15dp"
    android:text="Lorem Ipsum 1" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text2"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:text="@string/button_desc" />

<ImageView
    android:id="@+id/image"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text1"
    android:layout_centerHorizontal="true"
    android:contentDescription="@string/ima_zusatz_desc"
    android:src="@drawable/nix" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/text1"
    android:layout_below="@+id/image"
    android:text="Lorem Ipsum 2" />

注意:文本和图像应该由数据库中的内容动态更改。

谢谢,tomtom

1 个答案:

答案 0 :(得分:0)

除了XML之外,您还需要一个适配器和某种ListView。在您的适配器中,您必须实现

public View getView(int position, View convertView, ViewGroup parent)

在此方法中,返回新视图(可能使用LayoutInflator和xml创建)并更新每个按钮/文本视图上显示的数据。

确保研究convertView的工作原理。如果你的列表很长,那么正确使用convertView的性能提升是巨大的。如果你认为这是正确的,那么Android的listview和baseadpater将为你付出艰苦的努力。