动态表格布局 - 每次运行时的行和数据更改

时间:2012-03-30 05:37:41

标签: android layout

在我的Android应用程序中,我将向用户显示输入一些输入值(在主布局中),当按下按钮时,它从网站获取数据(使用AsyncTask)。在获取之后我想在单独的布局中显示输出。

布局应该是这样的:

----------------------------
Status: Success
----------------------------
Details are as follows:
----------------------------
Name of cust.        ABCDEFG
Age                       16
Total days               365
Present                  300
Absent                    65
Salary                 10000
etc..
----------------------------
           BACK
----------------------------

对于前两行,我想到了一个带有TextViews的LinearLayout。对于最后一个按钮“BACK”,它将显示在LinearLayout中。有关详细信息,我将使用TableLayout。但是这个细节部分是动态的。这是行数的变化。当用户按下“BACK”按钮时,他可以进行新的提取,并且将再次显示新提取的详细信息。

我将使用ScrollView获取详细信息部分,以允许用户在有较大行时查看内容。所以我可以使用代码动态创建布局。但是,当用户按下BACK按钮并再次取回时,我不知道该怎么做。这个已经创建的设计会留在内存中吗?或者任何更好的方法或建议?此外,详细信息部分第一列中的文本可能包含较大的文本。那该怎么办?

1 个答案:

答案 0 :(得分:1)

我建议不要使用tableview,过去有过几个问题,在你的情况下,相对布局也会这样做。下面的示例突出显示了您的详细信息的每一行所需的内容。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="TextView" />
</RelativeLayout>

对于较大的测试,假设文本很长,而不仅仅是大字体,可以添加

android:ellipsize="end"

给你TextView,如果文本变长,则剪切文本,并以“...”结束。要实现这一点,您需要告诉上面示例中的第一个textView1:

android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/textView2"

如果您不想删除文本,只需删除android:ellipsize行。