亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android EditText介紹

系統 2590 0

一:新建HelloEditText工程

新建一個Hello world詳細步驟可以參見

Android教程之三:第一個Android應用,HelloWorld

創建設置如下:

  1. Project name: HelloEditText
  2. Build Target :android 2.2
  3. Application name:HelloEditText
  4. Package name:com.flysnow
  5. create Activity: HelloEditText
  6. min SDK 8

這時候運行還看不到EditText,因為我們還沒有加上,修改main.xml如下:

Xml代碼
  1. <? xml version = "1.0" encoding = "utf-8" ?>
  2. < LinearLayout xmlns:android = "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. < EditText
  8. android:id = "@+id/edit_text"
  9. android:layout_width = "fill_parent"
  10. android:layout_height = "wrap_content"
  11. android:text = "這是一個EditText" />
  12. </ LinearLayout >

這里添加了一個id為"edit_text"的EditText,設置默認顯示為本為“這是一個EditText”。。運行效果如下:


二:EditText簡介

EditText是一個非常重要的組件,可以說它是用戶和Android應用進行數據傳輸窗戶,有了它就等于有了一扇和Android應用傳輸的門,通過它用戶可以把數據傳給Android應用,然后得到我們想要的數據。

EditText是TextView的子類,所以TextView的方法和特性同樣存在于EditText中,具體的TextView的介紹可以參考上一節 Android系列教程之六:TextView小組件的使用--附帶超鏈接和跑馬燈效果

三:長度和空白提示文字,提示文字顏色,是否可編輯等

EditText有一些屬性可以設置EditText的特性,比如最大長度,空白提示文字等。

  1. 有時候我們有一些特屬的需要,要求只能在EditText中輸入特定個數的字符,比如身份證號、手機號嗎等。這時候就可以通過android:maxLength屬性來設置最大輸入字符個數,比如android:maxLength=“4”就表示最多能輸入4個字符,再多了就輸入不進去了。
  2. 空白提示文字。有時候我們需要說明你定義的這個EditText是做什么用的,比如讓輸入“用戶名”,或者輸入“電話號碼”等,但是你又不想在EditText前面加一個TextView來說明這是輸入“用戶名”的,因為這會使用一個TextView,那么怎么辦呢?EditText為我們提供了android:hint來設置當EditText內容為空時顯示的文本,這個文本只在EditText為空時顯示,你輸入字符的時候就消失了,不影響你的EditText的文本。。修改main.xml如下:
    Xml代碼
    1. <? xml version = "1.0" encoding = "utf-8" ?>
    2. < LinearLayout xmlns:android = "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. < EditText
    8. android:id = "@+id/edit_text"
    9. android:layout_width = "fill_parent"
    10. android:layout_height = "wrap_content"
    11. android:maxLength = "40"
    12. android:hint = "請輸入用戶名..." />
    13. </ LinearLayout >
    運行應用就會看到如下的效果:

    看看吧,簡潔明了還不用新增一個TextView說明,也不影響用戶操作。
  3. 上面列出了空白時的提示文字,有的人說了,我不想要這個灰色的提示文字,和我的應用整體風格不協調,那也行啊,我們可以換顏色,怎么換呢,就是通過android:textColorHint屬性設置你想要的顏色。修改main.xml如下:
    Xml代碼
    1. <? xml version = "1.0" encoding = "utf-8" ?>
    2. < LinearLayout xmlns:android = "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. < EditText
    8. android:id = "@+id/edit_text"
    9. android:layout_width = "fill_parent"
    10. android:layout_height = "wrap_content"
    11. android:maxLength = "40"
    12. android:hint = "請輸入用戶名..."
    13. android:textColorHint = "#238745" />
    14. </ LinearLayout >
    運行程序效果如下:

    看到了吧,顏色已經變了。。
  4. 還有一個比較實用的功能,就是設置EditText的不可編輯。設置android:enabled="false"可以實現不可編輯,可以獲得焦點。這時候我們看到EditText和一個TextView差不多:
  5. 實現類似html中Textarea的文本域。在Android中沒有專門的文本域組件,但是可以通過設置EditText的高來實現同樣的文本域功能。修改main.xml如下:
    Xml代碼
    1. <? xml version = "1.0" encoding = "utf-8" ?>
    2. < LinearLayout xmlns:android = "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. < EditText
    8. android:id = "@+id/edit_text"
    9. android:layout_width = "fill_parent"
    10. android:layout_height = "200dip" />
    11. </ LinearLayout >
    運行程序效果如下:
    Android EditText介紹

四:輸入特殊格式的字符

在我們開發程序的時候不免會輸入一些特屬個數的字符,比如密碼(輸入框的字符要加密顯示),電話號碼(比如數字和-),數字等,這些都算是一些特屬格式的字符,強大的EditText同樣為我們提供了輸入這些特屬格式字符的設置。

  1. 密碼文本框。密碼輸入也是Android應用常用的功能,通過配置EditText的android:password="true"就可以實現這一密碼輸入功能,修改main.xml如下:
    Xml代碼
    1. <? xml version = "1.0" encoding = "utf-8" ?>
    2. < LinearLayout xmlns:android = "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. < EditText
    8. android:id = "@+id/edit_text"
    9. android:layout_width = "fill_parent"
    10. android:layout_height = "wrap_content"
    11. android:password = "true" />
    12. </ LinearLayout >
    運行效果如下:

    可以看到我們輸入的字符已經被“.”這樣的掩碼所代替。
  2. 手機中發短信打電話是必不可少的,所以用于專門輸入電話號碼的文本框也是大有用途,有了他我們對是否是電話號碼的校驗就容易的多了( 因為字符是正確的,只要校驗格式 ).通過設置android:phoneNumber="true"就可以把EditText變成只接受電話號碼輸入的文本框,連軟鍵盤都已經變成撥號專用軟鍵盤了,所以不用再擔心輸入其他字符了。修改main.xml如下:
    Xml代碼
    1. <? xml version = "1.0" encoding = "utf-8" ?>
    2. < LinearLayout xmlns:android = "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. < EditText
    8. android:id = "@+id/edit_text"
    9. android:layout_width = "fill_parent"
    10. android:layout_height = "wrap_content"
    11. android:phoneNumber = "true" />
    12. </ LinearLayout >
    運行程序效果如下:
    Android EditText介紹
    注意看軟鍵盤,已經變成撥號專用的啦.
  3. 有時候我們只想輸入數字,不想輸入字母,EditText為我們提供了android:numeric來控制輸入的數字類型,一共有三種分別為integer(正整數)、signed(帶符號整數)和decimal(浮點數)。這里以signed類型的為例,修改main.xml如下:
    Xml代碼
    1. <? xml version = "1.0" encoding = "utf-8" ?>
    2. < LinearLayout xmlns:android = "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. < EditText
    8. android:id = "@+id/edit_text"
    9. android:layout_width = "fill_parent"
    10. android:layout_height = "wrap_content"
    11. android:numeric = "signed" />
    12. </ LinearLayout >
    運行效果如下:
    Android EditText介紹
    注意這里的軟鍵盤變成“數字鍵盤”的變化.

五:為文本指定特定的軟鍵盤類型

前面我們通過指定為電話號碼特定格式,然后鍵盤類型變成了撥號專用的鍵盤,這個是自動變的,其實我們也可以通 過android:inputType來設置文本的類型,讓輸入法選擇合適的軟鍵盤的。。android:inputType有很多類型,這里使用date類型來演示,修改main.xml如下:

Xml代碼
  1. <? xml version = "1.0" encoding = "utf-8" ?>
  2. < LinearLayout xmlns:android = "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. < EditText
  8. android:id = "@+id/edit_text"
  9. android:layout_width = "fill_parent"
  10. android:layout_height = "wrap_content"
  11. android:inputType = "date" />
  12. </ LinearLayout >

運行效果如下:
Android EditText介紹

六:Enter鍵圖標的設置

軟鍵盤的Enter鍵默認顯示的是“完成”文本,我們知道按Enter建表示前置工作已經準備完畢了,要去什么什么啦。比如,在一個搜索中,我們輸入要搜索的文本,然后按Enter表示要去搜索了,但是默認的Enter鍵顯示的是“完成”文本,看著不太合適,不符合搜索的語義,如果能顯示“搜索”兩個字或者顯示一個表示搜索的圖標多好。事實證明我們的想法是合理的,Android也為我們提供的這樣的功能。通過設置android:imeOptions來改變默認的“完成”文本。這里舉幾個常用的常量值:

  1. actionUnspecified 未指定,對應常量EditorInfo.IME_ACTION_UNSPECIFIED.效果:
  2. actionNone 沒有動作,對應常量EditorInfo.IME_ACTION_NONE 效果:
  3. actionGo 去往,對應常量EditorInfo.IME_ACTION_GO 效果:
  4. actionSearch 搜索,對應常量EditorInfo.IME_ACTION_SEARCH 效果:
  5. actionSend 發送,對應常量EditorInfo.IME_ACTION_SEND 效果:
  6. actionNext 下一個,對應常量EditorInfo.IME_ACTION_NEXT 效果:
  7. actionDone 完成,對應常量EditorInfo.IME_ACTION_DONE 效果:

下面已搜索為例,演示一個實例,修改main.xml如下:

Xml代碼
  1. <? xml version = "1.0" encoding = "utf-8" ?>
  2. < LinearLayout xmlns:android = "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. < EditText
  8. android:id = "@+id/edit_text"
  9. android:layout_width = "fill_parent"
  10. android:layout_height = "wrap_content"
  11. android:imeOptions = "actionSearch" />
  12. </ LinearLayout >

修改HelloEditText如下:

Java代碼
  1. package com.flysnow;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.KeyEvent;
  5. import android.widget.EditText;
  6. import android.widget.TextView;
  7. import android.widget.Toast;
  8. import android.widget.TextView.OnEditorActionListener;
  9. public class HelloEditText extends Activity{
  10. /**Calledwhentheactivityisfirstcreated.*/
  11. @Override
  12. public void onCreate(BundlesavedInstanceState){
  13. super .onCreate(savedInstanceState);
  14. setContentView(R.layout.main);
  15. EditTexteditText=(EditText)findViewById(R.id.edit_text);
  16. editText.setOnEditorActionListener( new OnEditorActionListener(){
  17. @Override
  18. public boolean onEditorAction(TextViewv, int actionId,KeyEventevent){
  19. Toast.makeText(HelloEditText. this ,String.valueOf(actionId),Toast.LENGTH_SHORT).show();
  20. return false ;
  21. }
  22. });
  23. }
  24. }

運行程序,點擊回車(也就是搜索圖標軟鍵盤按鈕)會顯示該actionId.我們上面的每一個設置都會對應一個常量,這里的actionId就是那個常量值。
Android EditText介紹

七:EditText的取值、全選、部分選擇、獲取選中文本

下面通過一個例子來演示EditText的取值、全選、部分選擇和獲取選中文本.main.xml修改如下:

Xml代碼
  1. <? xml version = "1.0" encoding = "utf-8" ?>
  2. < LinearLayout xmlns:android = "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. < EditText
  8. android:id = "@+id/edit_text"
  9. android:layout_width = "fill_parent"
  10. android:layout_height = "wrap_content"
  11. android:imeOptions = "actionSearch" />
  12. < Button
  13. android:id = "@+id/btn_get_value"
  14. android:text = "取值"
  15. android:layout_width = "wrap_content"
  16. android:layout_height = "wrap_content" />
  17. < Button
  18. android:id = "@+id/btn_all"
  19. android:text = "全選"
  20. android:layout_width = "wrap_content"
  21. android:layout_height = "wrap_content" />
  22. < Button
  23. android:id = "@+id/btn_select"
  24. android:text = "從第2個字符開始選擇"
  25. android:layout_width = "wrap_content"
  26. android:layout_height = "wrap_content" />
  27. < Button
  28. android:id = "@+id/btn_get_select"
  29. android:text = "獲取選中文本"
  30. android:layout_width = "wrap_content"
  31. android:layout_height = "wrap_content" />
  32. </ LinearLayout >

HelloEditText修改如下:

Java代碼
  1. package com.flysnow;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.text.Editable;
  5. import android.text.Selection;
  6. import android.view.KeyEvent;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.TextView;
  12. import android.widget.Toast;
  13. import android.widget.TextView.OnEditorActionListener;
  14. /**
  15. *EditText演示
  16. *@author飛雪無情
  17. *@since2010-11-29
  18. */
  19. public class HelloEditText extends Activity{
  20. /**Calledwhentheactivityisfirstcreated.*/
  21. @Override
  22. public void onCreate(BundlesavedInstanceState){
  23. super .onCreate(savedInstanceState);
  24. setContentView(R.layout.main);
  25. final EditTexteditText=(EditText)findViewById(R.id.edit_text);
  26. //監聽回車鍵
  27. editText.setOnEditorActionListener( new OnEditorActionListener(){
  28. @Override
  29. public boolean onEditorAction(TextViewv, int actionId,KeyEventevent){
  30. Toast.makeText(HelloEditText. this ,String.valueOf(actionId),Toast.LENGTH_SHORT).show();
  31. return false ;
  32. }
  33. });
  34. //獲取EditText文本
  35. ButtongetValue=(Button)findViewById(R.id.btn_get_value);
  36. getValue.setOnClickListener( new OnClickListener(){
  37. @Override
  38. public void onClick(Viewv){
  39. Toast.makeText(HelloEditText. this ,editText.getText().toString(),Toast.LENGTH_SHORT).show();
  40. }
  41. });
  42. //讓EditText全選
  43. Buttonall=(Button)findViewById(R.id.btn_all);
  44. all.setOnClickListener( new OnClickListener(){
  45. @Override
  46. public void onClick(Viewv){
  47. editText.selectAll();
  48. }
  49. });
  50. //從第2個字符開始選擇EditText文本
  51. Buttonselect=(Button)findViewById(R.id.btn_select);
  52. select.setOnClickListener( new OnClickListener(){
  53. @Override
  54. public void onClick(Viewv){
  55. Editableeditable=editText.getText();
  56. Selection.setSelection(editable, 1 ,editable.length());
  57. }
  58. });
  59. //獲取選中的文本
  60. ButtongetSelect=(Button)findViewById(R.id.btn_get_select);
  61. getSelect.setOnClickListener( new OnClickListener(){
  62. @Override
  63. public void onClick(Viewv){
  64. int start=editText.getSelectionStart();
  65. int end=editText.getSelectionEnd();
  66. CharSequenceselectText=editText.getText().subSequence(start,end);
  67. Toast.makeText(HelloEditText. this ,selectText,Toast.LENGTH_SHORT).show();
  68. }
  69. });
  70. }
  71. /**
  72. *交換兩個索引
  73. *@paramstart開始索引
  74. *@paramend結束索引
  75. */
  76. protected void switchIndex( int start, int end){
  77. int temp=start;
  78. start=end;
  79. end=temp;
  80. }
  81. }

運行效果如下:


Android EditText介紹
可以通過輸入文字和點擊下面的按鈕測試。

八:小結

這結詳細介紹了EditText的大部分特性和常用功能,如常用的密碼框,獲取值等等。這幾天忙的沒更新,這次更新個長的。可以夠消化一陣子的。

Android EditText介紹


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 午夜福利毛片 | 欧美亚洲国产一区二区三区 | 欧美综合中文字幕久久 | 亚洲精品成人久久 | 香蕉视频国产精品 | 中文字幕免费在线 | 99精品视频在线在线视频观看 | 日日射视频 | 一级毛片不卡片免费观看 | 欧美日韩视频一区三区二区 | 天天操天天插 | 欧美xxx视频| 狠狠躁夜夜躁人人爽天天3 狠狠躁夜夜躁人人爽天天miya | 毛片免费观看 | 日日干日日干 | 日日干天天插 | 二区在线观看 | 伊人这里只有精品 | 国产凹凸在线一区二区色老头 | 四虎最新在线 | 99热碰| 久久黄色视屏 | 日韩毛片免费线上观看 | 真人女人一级毛片免费视频观看 | 天天操天天摸天天干 | 91大学生视频 | 一区二区三区不卡免费视频97 | 国模极品一区二区三区 | 国产疯狂露脸对白 | 亚洲精品一区二区深夜福利 | 日本激情一区二区三区 | 综合亚洲一区二区三区 | 99久久99久久精品免费看蜜桃 | 荷兰毛片 | 亚洲日韩欧美综合 | 国产色综合久久无码有码 | 色日韩| 91精品论坛 | 国产在线精品观看一区 | 天天色天天射天天干 | 欧美国产日韩在线播放 |