如何在android中创建可变数量的textviews
Posted
技术标签:
【中文标题】如何在android中创建可变数量的textviews【英文标题】:How to create a variable number of textviews in android 【发布时间】:2013-06-14 03:36:24 【问题描述】:希望这不是一个坏问题,不过我已经搜索过 S.O.并且无法找到答案。
我正在创建一个本质上是一个闹钟的 android 应用程序。我希望主要活动显示所有已创建的警报以及有关警报的一些信息。我的问题是如何根据已创建的警报数量创建给定数量的文本视图。例如,如果用户创建(而不是删除)5 个警报,我如何让它显示 5 个文本视图,而不仅仅是硬编码的文本视图数量?以下是我用于测试功能的硬编码原型(除了这个挂断)。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
tools:context=".Launch" >
<ScrollView
android:orientation="vertical"
android:layout_
android:layout_>
<LinearLayout android:orientation="vertical"
android:layout_
android:layout_>
<TextView
android:orientation = "vertical"
android:layout_
android:layout_
android:text="Time"/>
<View
android:layout_
android:layout_
android:id="@+id/separator"
android:visibility="visible"
android:background="@android:color/darker_gray"/>
<TextView
android:orientation = "vertical"
android:layout_
android:layout_
android:text="Time"/>
<View
android:layout_
android:layout_
android:id="@+id/separator"
android:visibility="visible"
android:background="@android:color/darker_gray"/>
<TextView
android:orientation = "vertical"
android:layout_
android:layout_
android:text="Time"/>
<View
android:layout_
android:layout_
android:id="@+id/separator"
android:visibility="visible"
android:background="@android:color/darker_gray"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
如您所见,只有三个硬编码的文本视图,而不是用户创建的多个文本视图。
再次,我希望这不是一个问题或一个在其他地方发布了答案但我搜索它但找不到任何东西的问题。
提前致谢!
【问题讨论】:
您需要以编程方式执行此操作,而不仅仅是通过 xml。 你可以使用 listview 和 cursoradapter 来代替 scrollview。我的意思是如果你将警报保存在 db 中,那么你可以使用 listview 和 cursoradapter 来显示警报 看看我的回答对你有没有帮助。由于您是 SO 新手,请查看tour。 【参考方案1】:您可以通过编程方式执行此操作:
int size = numAlarms; // total number of TextViews to add
TextView[] tv = new TextView[size];
TextView temp;
for (int i = 0; i < size; i++)
temp = new TextView(this);
temp.setText("Alarm: " + i); //arbitrary task
// add the textview to the linearlayout
myLinearLayout.addView(temp);
tv[i] = temp;
【讨论】:
所以为了确保我理解正确,在使用您建议的编程解决方案时,我还需要在代码的早期以编程方式添加线性布局,或者我可以将它添加到 xml以某种方式参考?或者我想我可以通过以下方式检索我的 xml 线性布局:LinearLayout linearLayout = (LinearLayout) findViewById(R.id.IdToBeSetInXml);
以上是关于如何在android中创建可变数量的textviews的主要内容,如果未能解决你的问题,请参考以下文章
如何在 node.js 中的 paypal 中创建可变的定期付款
如何在一个可在外面访问的struct中创建一个可变参数模板?