Android组建学习,详细步骤,附加源码

实验案例3-2 TextView(新闻摘要与详情)

 

实验目的

1.掌握TextView的使用方法。

实验原理

TextView是Android的最基础的控件之一。主要用于在界面中显示一段文本信息,它既可以显示单行文本,也可以显示多行文本,还可以显示带图像的文本。并且可以通过文本实现超链接。

 

Android组建学习,详细步骤,附加源码

 

 

 

 

 

 

本案例通过TextView实现新闻标题与新闻内容的显示,并通过TextView实现超链接。

 

【实验步骤

1.创建新项目

先建立一个空项目,如TextViewTest项目,然后进行以下修改。

2.资源建设

(1)设置字符串资源

为了方便使用、统一更改,可在res \ values \ strings.xml中定义本案例用到的新闻标题和新闻内容等字符串资源,参考代码如下:

<resources>
    <string name="app_name">TextViewTest</string>

    <string name="title">巴黎银行公开赛纳达尔、费德勒会师半决赛</string>
    <string name="content">\t 3月15日,在美国印第安韦尔斯进行的巴黎银行网球公开赛比赛中,瑞士天王费德勒和西班牙球星纳达尔,在四分之一决赛中分别战胜各自对手后,会师男单半决赛。</string>

</resources>

 

(2)定义样式

在一个应用程序中,为了使得文本格式统一,可以在res \ values \ styles.xml中预先定义好样式,本例使用样式定义新闻标题与内容的显示样式,参考代码如下:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <!-- 自定义标题的样式 -->
    <style name="title_style">
        <item name="android:textColor">#00f</item>
        <item name="android:textSize">20sp</item>
        <item name="android:textStyle">bold</item>
    </style>
    <!-- 自定义内容的样式-->
    <style name="content_style">
        <item name="android:textColor">#000</item>
        <item name="android:textSize">15sp</item>
    </style>

</resources>

 

3.设置主布局文件

修改主布局文件activity_main.xml,本例使用线性布局,并在其中添加TextView控件,并设置其相关属性,具体内容如下。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.textviewtest.MainActivity">

    <!-- 使用title_style样式 -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/title"
        android:id="@+id/tv_title"
        style="@style/title_style"
        android:gravity="center_horizontal"
        />
    <!-- 使用content_style样式 -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/content"
        android:id="@+id/tv_content"
        style="@style/content_style"
        />
    <!-- 右对齐链接文本 -->
    <TextView
        android:id="@+id/tv_link"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        />
</LinearLayout>

请注意:线性布局的参数,TextView的参数的使用,比如样式、id等设置。

 

4.编写代码

具体代码如下。

package com.example.textviewtest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

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

        //取得id为tv_link的文本显示框
        tv=(TextView) this.findViewById(R.id.tv_link);

 

tv.setText( Html.fromHtml( "<a href='https://baijiahao.baidu.com/s?id=1628131995624670267&wfr=spider&for=pc'>详情</a> ") );

 

        //设置TextView可跳转到相关页面
        tv.setMovementMethod(LinkMovementMethod.getInstance());

    }
}

代码说明:

(1)定义了所需要的变量:

TextView tv;

(2)获取控件对象

    tv=(TextView) this.findViewById(R.id.tv_link);
(3)通过TextView的setMovementMethod(LinkMovementMethod.getInstance())方法,**链接

tv.setMovementMethod(LinkMovementMethod.getInstance());

5.验证效果

运行效果如图1所示,点击“详情”,弹出浏览器选项,选择后,效果如图2所示。

 

 

 

App项目:https://download.****.net/download/qq_37037348/11050521