我是Android平台的新手,我想使用textviews设置文本,我试着将设置文本写入两个文本视图,但它只是绘制一个textview为什么? 我无法绘制两个文本视图
TextView tv1;
TextView tv2;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
layout = new LinearLayout(this);
tv1 = new TextView(this);
tv2 = new TextView(this);
tv1.setText("Hello");
tv2.setText("How are you?");
}
答案 0 :(得分:4)
在Android上,通常应该使用XML文件而不是Java代码创建用户界面。你应该阅读android.com上的教程,特别是:
http://developer.android.com/guide/topics/ui/declaring-layout.html
一个例子:
在res / layout / main.xml中,定义文本TextView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:id="@+id/TextView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="TextView 1"/>
<TextView android:id="@+id/TextView2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="TextView 2"/>
</LinearLayout>
然后,如果你在活动中使用setContentView来显示它,那么应用程序将显示给TextView:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
}
如果要以编程方式在Activity中设置文本,只需使用findViewById():
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
((TextView)this.findViewById(R.id.TextView1)).setText("Setting text of TextView1");
}
答案 1 :(得分:1)
我绝对是第二个TuomasR建议使用XML布局。但是,如果您想要动态添加新的TextView(即,您不知道在运行时需要多少),您需要执行其他几个步骤来执行您的工作:
首先,在main.xml中定义你的LinearLayout(它比LayoutParams,IMO更简单):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_linear_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
/>
现在,您可以转到您的代码,然后尝试以下操作:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//This inflates your XML file to the view to be displayed.
//Nothing exists on-screen at this point
setContentView(R.layout.main);
//This finds the LinearLayout in main.xml that you gave an ID to
LinearLayout layout = (LinearLayout)findViewById(R.id.my_linear_layout);
TextView t1 = new TextView(this);
TextView t2 = new TextView(this);
t1.setText("Hello.");
t2.setText("How are you?");
//Here, you have to add these TextViews to the LinearLayout
layout.addView(t1);
layout.addView(t2);
//Both TextViews should display at this point
}
同样,如果您提前知道需要多少视图,请使用USE XML。