Android TextView

时间:2020-01-09 10:34:00  来源:igfitidea点击:

Android的TextView组件是一个View子类,能够显示文本。作为View的子类,TextView组件可以在Android应用的GUI的ViewGroup中使用,也可以作为活动的内容视图使用。

创建一个TextView

我们可以通过在布局XML文件中声明实例或者通过编程实例化实例来创建一个TextView实例。在以下各节中,我将介绍创建" TextView"的两种方法。

在布局文件中创建TextView

通过在布局文件中要显示" TextView"的位置插入" TextView"元素,可以在Android布局XML文件中创建" TextView"。这是一个声明TextView的示例布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <TextView android:text="@string/hello_world"
          android:id="@+id/textview"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" />

</RelativeLayout>

注意RelativeLayout元素内的TextViewXML元素。这个TextView元素声明一个TextView对象。我的有关Android布局的教程介绍了其他布局属性。

将布局文件用作" Activity"子类的内容视图后,我们可以像以下方式获取对" TextView"实例的引用:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView textView = (TextView) findViewById(R.id.textview);
    }
}

以编程方式创建TextView

我们还可以通过编程实例化AndroidTextView。这是一个AndroidTextView实例化示例:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        RelativeLayout relativeLayout =
            (RelativeLayout) findViewById(R.id.rootlayout);

        TextView textView = new TextView(this);
        textView.setText("Hey, one more TextView");

        relativeLayout.addView(textView);
    }
}

本示例创建一个" TextView"实例,设置其文本并将其添加到活动的根布局中。

设置TextView的文本

我们可以在布局文件中声明文本时或者使用setText()方法来设置要在TextView中显示的文本。

这是一个XML示例,显示了如何在布局文件中设置已声明的" TextView"的文本:

<TextView android:text="@string/hello_world"
          android:id="@+id/textview"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" />

文字是通过android:text属性设置的。我们可以直接将文本设置为属性值,也可以像在上面的示例中一样,引用在strings.xml中定义的文本。

这是一个TextViewsetText()示例,以编程方式设置文本:

textView.setText("Hey, one more TextView");

在TextView中显示HTML

Android的TextView组件也可以显示HTML。这是操作方式:

textView.setText(Html.fromHtml(
    "<p>This text is <b>bold</b> and uses HTML</p>" +
    "<p>This is <i>italic</i> .</p>"));

不过," TextView"能够显示的HTML受到限制。如果需要显示更高级的HTML,请使用Android WebView。