Android:绘制许多文本视图

时间:2010-09-29 11:17:12

标签: android

我是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?");

}

2 个答案:

答案 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。