Android组建学习,详细步骤,附加源码
实验案例3-2 TextView(新闻摘要与详情)
【实验目的】
1.掌握TextView的使用方法。
【实验原理】
TextView是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