程式扎記: [Android SDK 入門] 常用控制項 : 顯示文字控制項 - TextView

標籤

2010年10月7日 星期四

[Android SDK 入門] 常用控制項 : 顯示文字控制項 - TextView

前言 : 
Text View (android.widget.TextView) 控制項可以說是最基本的控制項, 其主要目的就是用於顯示文字. 

主要功能介紹 : 
這個程式簡單而直覺, 在主畫面點選Button 後, 呈現的示範畫面直接以兩個 TextView 控制項顯示文字內容, 唯一要注意的是在 layout 中配置了不同的顏色, 在程式中也可以使用setText() 方法設定不同的文字內容. 另外由類別架構可以得知 TextView 控制項是繼承自 android.view.View. 在視窗應用程式的世界中, 多數的控制項都是由一個基本的顯示控制項 (這裡是View) 繼承而來, 表面看起來 TextView 要比 View 小的多, 但是透過設定可以很輕易的把 TextView 設定為填滿整個畫面, 而許多的函式也是直接繼承 View 而來. 

範例代碼 : 

- main.xml 內容 :
  1. "1.0" encoding="utf-8"?>  
  2. "http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.       
  8.     
  9.         android:id="@+id/btn_Text_View"  
  10.         android:layout_width="fill_parent"  
  11.         android:layout_height="wrap_content"  
  12.         android:text="顯示文字控制項">          
  13.       
  14.   


- ControlItemsDemo.java 代碼 : 主程式的 Activity
  1. package john.controlitems.demo;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.widget.Button;  
  8.   
  9. public class ControlItemsDemo extends Activity {  
  10.     private Button btn_Button;  
  11.     private Button btn_CheckBox;  
  12.     private Button btn_TextView;    
  13.       
  14.     /** Called when the activity is first created. */  
  15.     @Override  
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.main);  
  19.         findViews();  
  20.         addListener();  
  21.     }  
  22.       
  23.     protected void findViews(){  
  24.         btn_Button = (Button)findViewById(R.id.btn_Button);  
  25.         btn_CheckBox = (Button)findViewById(R.id.btn_Text_Check_Box);  
  26.         // 使用 findViewById() 傳入控制項 id 去獲取控制項實體  
  27.         btn_TextView = (Button)findViewById(R.id.btn_Text_View);  
  28.     }  
  29.     protected void addListener(){  
  30.         // 定義 Button 的監聽, 並於按下按鈕後啟動 TextView 範例的 Activity  
  31.         btn_TextView.setOnClickListener(new Button.OnClickListener(){  
  32.             @Override  
  33.             public void onClick(View v) {  
  34.                 Intent intent_TextView = new Intent();  
  35.                 intent_TextView.setClass(ControlItemsDemo.this, SampleTextView.class);  
  36.                 startActivity(intent_TextView);               
  37.             }  
  38.               
  39.         });  
  40.         btn_Button.setOnClickListener(new Button.OnClickListener(){  
  41.             @Override  
  42.             public void onClick(View v) {  
  43.                 Intent intent_CheckBox = new Intent();  
  44.                 intent_CheckBox.setClass(ControlItemsDemo.this, SampleButton.class);  
  45.                 startActivity(intent_CheckBox);               
  46.             }  
  47.               
  48.         });  
  49.         btn_CheckBox.setOnClickListener(new Button.OnClickListener(){  
  50.             @Override  
  51.             public void onClick(View v) {  
  52.                 Intent intent_CheckBox = new Intent();  
  53.                 intent_CheckBox.setClass(ControlItemsDemo.this, SampleCheckBox.class);  
  54.                 startActivity(intent_CheckBox);  
  55.             }             
  56.         });  
  57.     }  
  58. }  


- sample_text_view.xml : TextView Activity 的 xml 描述檔
  1. "1.0" encoding="utf-8"?>  
  2. "http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.     
  8.         android:id="@+id/txv_Pre"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:textSize="15sp"  
  12.         android:textColor="@color/black"  
  13.         android:padding="10dip"  
  14.         android:background="@color/red"  
  15.         android:text="改變 TextView 內容">  
  16.     
  17.         android:id="@+id/txv_Cur"  
  18.         android:layout_width="fill_parent"  
  19.         android:layout_height="wrap_content"  
  20.         android:textSize="15sp"  
  21.         android:textColor="@color/white"  
  22.         android:padding="10dip"  
  23.         android:background="@color/blue">                                              
  24.   


- SampleTextView.java : Text View 的 Activity 代碼
  1. package john.controlitems.demo;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.widget.TextView;  
  6.   
  7. public class SampleTextView extends Activity {  
  8.     private TextView txv_Pre;  
  9.     private TextView txv_Cur;  
  10.   
  11.     @Override  
  12.     public void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.sample_text_view);  
  15.         findViews();  
  16.         addListener();  
  17.     }  
  18.       
  19.     protected void findViews(){  
  20.         txv_Pre = (TextView)findViewById(R.id.txv_Pre);  
  21.         txv_Cur = (TextView)findViewById(R.id.txv_Cur);  
  22.           
  23.         /*呼叫 TextView 控制項的 setText() 方法將文字分別設定於其上*/  
  24.         txv_Pre.setText("內容再變更前為:\n"+txv_Pre.getText());  
  25.         txv_Cur.setText("內容在變更後為:\nAndroid 實在太屌拉!");  
  26.     }  
  27.     protected void addListener(){}  
  28. }  


- values/colors.xml : 顏色描述檔
  1. "1.0" encoding="utf-8"?>  
  2.      
  3.     "black">#000000  
  4.     "blue">#0000FF    
  5.     "red">#FF0000  
  6.     "white">#FFFFFF  
  7.   


- AndroidManifest.xml : 在此註冊 TextView 的 Activity
  1. "1.0" encoding="utf-8"?>  
  2. "http://schemas.android.com/apk/res/android"  
  3.       package="john.controlitems.demo"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     "@drawable/icon" android:label="@string/app_name">  
  7.         ".ControlItemsDemo"  
  8.                   android:label="@string/app_name">  
  9.               
  10.                 "android.intent.action.MAIN" />  
  11.                 "android.intent.category.LAUNCHER" />  
  12.               
  13.           
  14.         ".SampleCheckBox">  
  15.         ".SampleButton">  
  16.           
  17.         ".SampleTextView">  
  18.       
  19.   

顯示範例結果 : 
Step1: 在主程式開啟後點擊按鈕 "顯示文字控制項" 進入 Text View Demo 的 Activity 
This message was edited 3 times. Last update was at 07/10/2010 18:58:54


沒有留言:

張貼留言

網誌存檔

關於我自己

我的相片
Where there is a will, there is a way!