在我的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按钮并再次取回时,我不知道该怎么做。这个已经创建的设计会留在内存中吗?或者任何更好的方法或建议?此外,详细信息部分第一列中的文本可能包含较大的文本。那该怎么办?
答案 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行。