程式扎記: [Android SDK 入門] 常用控制項 : 編輯文字控制項 - EditText

標籤

2010年10月7日 星期四

[Android SDK 入門] 常用控制項 : 編輯文字控制項 - EditText

前言 : 
android.widget.EditText 是讓使用者輸入並且編輯文字使用的, EditText 在實際使用上還會對於使用者輸入的文字進行驗證, 看是不是正確的格式與內容, 若要取得 EditText 輸入的文字內容, 可以使用函式 getText() 來取得. 

主要功能介紹 : 
配置 EditText 控制項讓使用者輸入文字並且使用 getText() 方法取得輸入內容後, 放置到目前 Activity 的標題上顯示出來. 

範例代碼 : 

- main.xml : 添加以下代碼以透過此按鈕點擊, 開啟 EditText demo 的 Activity
  1.  
  2.         android:id="@+id/btn_Edit_Text"  
  3.         android:layout_width="fill_parent"  
  4.         android:layout_height="wrap_content"  
  5.         android:text="編輯文字控制">  


- ControlItemsDemo.java : 在這裡取得上面定義 Button 的實例, 並添加監聽在被點擊時候開啟 EditText demo 的 Activity
  1. ...  
  2.     private Button btn_Edit_Text;  // 宣告 Button  
  3. ...  
  4.     protected void findViews(){  
  5.         ...       
  6.         btn_Edit_Text = (Button)findViewById(R.id.btn_Edit_Text); // 取的上面定義 Button 的實例  
  7.     }  
  8.     protected void addListener(){  
  9.         // 添加監聽, 當按鈕被按下, 開啟 EditText demo 的 Activity  
  10.         btn_Edit_Text.setOnClickListener(new Button.OnClickListener(){  
  11.             @Override  
  12.             public void onClick(View v) {  
  13.                 Intent intent_TextView = new Intent();  
  14.                 intent_TextView.setClass(ControlItemsDemo.this, SampleEditText.class);  
  15.                 startActivity(intent_TextView);               
  16.             }  
  17.               
  18.         });  
  19.         ...  
  20.     }  


- sample_edit_text.xml : EditText demo 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_Name"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:text="Name: ">  
  12.     
  13.         android:id="@+id/edt_Name"  
  14.         android:layout_width="fill_parent"  
  15.         android:layout_height="wrap_content">      
  16.     
  17.         android:id="@+id/btn_Get_Edit_Text"  
  18.         android:layout_width="wrap_content"  
  19.         android:layout_height="wrap_content"  
  20.         android:text="取得EditView 中的內容">                                              
  21.   


- SampleEditText.java : EditText demo Activity 代碼
  1. package john.controlitems.demo;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.widget.Button;  
  7. import android.widget.EditText;  
  8.   
  9. public class SampleEditText extends Activity {  
  10.     private Button btn_Get_Edit_Text;  
  11.     private EditText edt_Name;  
  12.       
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.sample_edit_text);  
  17.         findViews();  
  18.         addListener();  
  19.     }  
  20.   
  21.     protected void findViews(){  
  22.         btn_Get_Edit_Text = (Button)findViewById(R.id.btn_Get_Edit_Text);  
  23.         edt_Name = (EditText)findViewById(R.id.edt_Name);  
  24.     }  
  25.       
  26.     protected void addListener(){  
  27.         btn_Get_Edit_Text.setOnClickListener(new Button.OnClickListener(){  
  28.             @Override  
  29.             public void onClick(View v) {  
  30.                 setTitle("輸入內容為: "+edt_Name.getText());               
  31.             }             
  32.         });  
  33.     }  
  34. }  


- AndroidManifest.xml : 在此對 EditText demo 的 Activity 作註冊
  1. ...  
  2. ".SampleEditText">  
  3. ...  

顯示範例結果 : 
在程式主畫面點擊按鈕 "編輯文字控制" 進入 EditText demo Activity : 
Step1 : 在 EditText 輸入文字後點擊按鈕 "取得EditView 中的內容" 
 
Step2 : 當前 Activity 的標題變動為 EditText 的輸入文字 

沒有留言:

張貼留言

網誌存檔

關於我自己

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