最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android EditText詳解及示例代碼

 更新時(shí)間:2016年09月04日 11:01:10   投稿:lqh  
本文主要介紹Android EditText 的知識,這里整理了詳細(xì)資料及簡單示例代碼有興趣的小伙伴可以參考下

    EditText在API中的結(jié)構(gòu)

  java.lang.Object

  android.view.View

  android.widget.TextView

  android.widget.EditText

  已知直接子類:

  AutoCompleteTextView, ExtractEditText

  已知間接子類:

  MultiAutoCompleteTextView

  EditText是TextView的直接子類 所以EditText會繼承父類TextView的一些方法。下面我用自己寫的一個(gè)Demo 和大家詳細(xì)的說明一下EditView的使用方法。

  1.簡單的EditText輸入框

  非常簡單,在layout布局中配置一下EditText 在配置一個(gè)Button 在代碼中監(jiān)聽Button 的事件 獲取當(dāng)前EditView中輸入的內(nèi)容并且顯示出來。

XML/HTML代碼

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/textviewll" 
  android:orientation="vertical" android:layout_width="fill_parent" 
  android:layout_height="fill_parent"> 
  <EditText 
   android:id="@+id/sample_edit_text0" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:text="簡單的EditText輸入框"/> 
  <Button 
   android:id="@+id/sample_button0" 
   android:layout_width="fill_parent" android:layout_height="wrap_content" 
   android:text="確定"/> 
</LinearLayout> 

Java代碼

public class SampleActivity extends Activity { 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
  setContentView(R.layout.sample); 
  
  final EditText editText0 = (EditText)findViewById(R.id.sample_edit_text0); 
  
  Button button0 = (Button)findViewById(R.id.sample_button0); 
  
  button0.setOnClickListener(new OnClickListener() { 
  
    @Override 
    public void onClick(View arg0) { 
    String str = editText0.getText().toString(); 
    Toast.makeText(SampleActivity.this,str, Toast.LENGTH_LONG).show(); 
    } 
  }); 
  
  super.onCreate(savedInstanceState); 
  } 
} 

  2.限制EditText輸入框的內(nèi)容

  在layout中配置信息

  android:digits=”1234567890.+-*/%\n()”

  限制輸入框中只能輸入自己定義的這些字符串 如果輸入其它將不予以顯示

  android:phoneNumber=”true”

  限制輸入框中只能輸入手機(jī)號碼

  android:password=”true”

  限制輸入框中輸入的任何內(nèi)容將以”*”符號來顯示

  android:hint=”默認(rèn)文字”

  輸入內(nèi)容前默認(rèn)顯示在輸入框中的文字

  android:textColorHint=”#FF0000″

  設(shè)置文字內(nèi)容顏色

  android:enabled=”false”

  設(shè)置輸入框不能被編輯

  3.編輯框中顯示圖片

  上一篇講TextView中就講過在TextView中添加圖片的方法,因?yàn)镋ditText是TextView的子類, 所以當(dāng)然也可以添加圖片了,只是一旦在EditText中添加圖片以后是不能刪除的,如圖所示我可以編輯圖片旁邊的內(nèi)容,寫入文字。

XML/HTML代碼

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/textviewll" 
  android:orientation="vertical" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  > 
  <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="在圖片下方" 
       android:textColor="#FF0000" 
       android:drawableBottom="@drawable/jay" 
       android:layout_alignParentTop="true" 
       android:layout_centerHorizontal="true" 
       > 
   </EditText> 
  
   <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="在圖片上方" 
       android:textColor="#FF0000" 
       android:drawableTop="@drawable/jay" 
       android:layout_alignParentBottom="true" 
       android:layout_centerHorizontal="true" 
       > 
   </EditText> 
   <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="在圖片左邊" 
       android:textColor="#FF0000" 
       android:drawableLeft="@drawable/jay" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       > 
   </EditText> 
   <EditText 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="在圖片右邊" 
       android:textColor="#FF0000" 
       android:drawableRight="@drawable/jay" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       > 
   </EditText>  
  
</RelativeLayout > 

  4.設(shè)置軟鍵盤的Enter鍵

  如圖所示我們可以修改軟鍵盤的Enter按鈕的樣式,可以在代碼中監(jiān)聽 按鈕點(diǎn)擊事件。

Java代碼

package cn.m15.xys; 
  
import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.inputmethod.EditorInfo; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.TextView.OnEditorActionListener; 
  
public class KeyBoardActivity extends Activity { 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
  setContentView(R.layout.keyboard); 
  
  EditText editText0 = (EditText)findViewById(R.id.txtTest0); 
  
  editText0.setOnEditorActionListener(new OnEditorActionListener() { 
  
    @Override 
    public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { 
    if (arg1 == EditorInfo.IME_ACTION_GO) { 
      Toast.makeText(KeyBoardActivity.this, "你點(diǎn)了軟鍵盤'去往'按鈕", 
        Toast.LENGTH_SHORT).show(); 
    } 
    return false; 
    } 
  }); 
  EditText editText1 = (EditText)findViewById(R.id.txtTest1); 
  
  editText1.setOnEditorActionListener(new OnEditorActionListener() { 
  
    @Override 
    public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { 
    if (arg1 == EditorInfo.IME_ACTION_SEARCH) { 
      Toast.makeText(KeyBoardActivity.this, "你點(diǎn)了軟鍵盤'搜索'按鈕", 
        Toast.LENGTH_SHORT).show(); 
    } 
    return false; 
    } 
  }); 
  EditText editText2 = (EditText)findViewById(R.id.txtTest2); 
  
  editText2.setOnEditorActionListener(new OnEditorActionListener() { 
  
    @Override 
    public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { 
    if (arg1 == EditorInfo.IME_ACTION_SEND) { 
      Toast.makeText(KeyBoardActivity.this, "你點(diǎn)了軟鍵盤'發(fā)送'按鈕", 
        Toast.LENGTH_SHORT).show(); 
    } 
    return false; 
    } 
  }); 
  EditText editText3 = (EditText)findViewById(R.id.txtTest3); 
  
  editText3.setOnEditorActionListener(new OnEditorActionListener() { 
  
    @Override 
    public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { 
    if (arg1 == EditorInfo.IME_ACTION_NEXT) { 
      Toast.makeText(KeyBoardActivity.this, "你點(diǎn)了軟鍵盤'下一個(gè)'按鈕", 
        Toast.LENGTH_SHORT).show(); 
    } 
    return false; 
    } 
  }); 
  EditText editText4 = (EditText)findViewById(R.id.txtTest4); 
  
  editText4.setOnEditorActionListener(new OnEditorActionListener() { 
  
    @Override 
    public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { 
    if (arg1 == EditorInfo.IME_ACTION_DONE) { 
      Toast.makeText(KeyBoardActivity.this, "你點(diǎn)了軟鍵盤'完成'按鈕", 
        Toast.LENGTH_SHORT).show(); 
    } 
    return false; 
    } 
  }); 
  EditText editText5 = (EditText)findViewById(R.id.txtTest5); 
  
  editText5.setOnEditorActionListener(new OnEditorActionListener() { 
  
    @Override 
    public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { 
    if (arg1 == EditorInfo.IME_ACTION_UNSPECIFIED) { 
      Toast.makeText(KeyBoardActivity.this, "你點(diǎn)了軟鍵盤'未指定'按鈕", 
        Toast.LENGTH_SHORT).show(); 
    } 
    return false; 
    } 
  }); 
  super.onCreate(savedInstanceState); 
  } 
} 

  監(jiān)聽軟鍵盤的點(diǎn)擊事件

XML/HTML代碼

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/textviewll" 
  android:orientation="vertical" android:layout_width="fill_parent" 
  android:layout_height="fill_parent"> 
  <EditText android:id="@+id/txtTest0" 
   android:imeOptions="actionGo" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:hint="特殊按鈕-去往" 
   ></EditText> 
  <EditText android:id="@+id/txtTest1" 
   android:imeOptions="actionSearch" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:hint="特殊按鈕-搜索" 
   ></EditText> 
  <EditText android:id="@+id/txtTest2" 
   android:imeOptions="actionSend" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:hint="特殊按鈕-發(fā)送" 
   ></EditText> 
  <EditText android:id="@+id/txtTest3" 
   android:imeOptions="actionNext" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:hint="特殊按鈕-下一個(gè)" 
   ></EditText> 
  <EditText android:id="@+id/txtTest4" 
   android:imeOptions="actionDone" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:hint="特殊按鈕-完成" 
   ></EditText> 
  <EditText android:id="@+id/txtTest5" 
   android:imeOptions="actionUnspecified" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:hint="特殊按鈕-未指定" 
   ></EditText> 
  
</LinearLayout> 

  5.監(jiān)聽軟鍵盤的按鍵事件

  做項(xiàng)目的時(shí)候 有時(shí)候須要在用戶輸入內(nèi)容時(shí)做檢測,比如如果用戶輸入不合法的內(nèi)容不予以顯示在EditText中, 這時(shí)候我就要用到addTextChangedListener 用它來監(jiān)聽用戶輸入狀態(tài)。可以在監(jiān)聽中改變用戶輸入的內(nèi)容或者提示用戶輸入內(nèi)容不合法等等。 如圖所示我的每次輸入操作都可以被正常的監(jiān)聽出來,用戶輸入內(nèi)容的正常流程 beforeTextChanged()  -》onTextChanged()  -》afterTextChanged()然后是通知屏幕繪制 顯示在屏幕上 所以我們可以在這三個(gè)方法中來修改用戶輸入內(nèi)容 或者截取用戶輸入的內(nèi)容。

Java代碼

package cn.m15.xys; 
  
import android.app.Activity; 
import android.os.Bundle; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.widget.EditText; 
import android.widget.TextView; 
  
public class MonitorKeyActivity extends Activity { 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
  setContentView(R.layout.monitorkey); 
  EditText editText = (EditText)findViewById(R.id.monitor_edit_text0); 
  final TextView textView0 = (TextView)findViewById(R.id.monitor_text0); 
  final TextView textView1 = (TextView)findViewById(R.id.monitor_text1); 
  final TextView textView2 = (TextView)findViewById(R.id.monitor_text2); 
  
  editText.addTextChangedListener(new TextWatcher() { 
  
    @Override 
    public void onTextChanged(CharSequence text, int start, int before, int count) { 
        //text 輸入框中改變后的字符串信息 
    //start 輸入框中改變后的字符串的起始位置 
    //before 輸入框中改變前的字符串的位置 默認(rèn)為0 
    //count 輸入框中改變后的一共輸入字符串的數(shù)量 
    textView1.setText("輸入后字符串 [ " + text.toString() + " ] 起始光標(biāo) [ " + start + " ] 輸入數(shù)量 [ " + count+" ]"); 
  
    } 
  
    @Override 
    public void beforeTextChanged(CharSequence text, int start, int count,int after) { 
    //text 輸入框中改變前的字符串信息 
    //start 輸入框中改變前的字符串的起始位置 
    //count 輸入框中改變前后的字符串改變數(shù)量一般為0 
    //after 輸入框中改變后的字符串與起始位置的偏移量 
    System.out.println(text.toString()); 
    textView0.setText("輸入前字符串 [ " + text.toString() + " ]起始光標(biāo) [ " + start + " ]結(jié)束偏移量 [" + after + " ]"); 
    } 
  
    @Override 
    public void afterTextChanged(Editable edit) { 
    //edit 輸入結(jié)束呈現(xiàn)在輸入框中的信息 
    textView2.setText("輸入結(jié)束后的內(nèi)容為 [" + edit.toString()+" ] 即將顯示在屏幕上"); 
    } 
  }); 
  
  super.onCreate(savedInstanceState); 
  } 
} 

XML/HTML代碼

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/textviewll" 
  android:orientation="vertical" android:layout_width="fill_parent" 
  android:layout_height="fill_parent"> 
  <TextView 
   android:id="@+id/monitor_text0" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:textSize="18dip" 
   android:textColor="#FF0000"/> 
  <TextView 
   android:id="@+id/monitor_text1" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:textSize="18dip" 
   android:textColor="#FF0000" 
   /> 
  <TextView 
   android:id="@+id/monitor_text2" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:textSize="18dip" 
   android:textColor="#FF0000" 
   /> 
  <EditText 
   android:id="@+id/monitor_edit_text0" 
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:hint="監(jiān)聽軟鍵盤按鍵的輸入狀態(tài)"/> 
</LinearLayout> 

        希望通過此文,大家可以對Android RditText的知識掌握,謝謝大家對本站的支持!

相關(guān)文章

  • Android編程之內(nèi)存溢出解決方案(OOM)實(shí)例總結(jié)

    Android編程之內(nèi)存溢出解決方案(OOM)實(shí)例總結(jié)

    這篇文章主要介紹了Android編程之內(nèi)存溢出解決方案(OOM),結(jié)合實(shí)例實(shí)例總結(jié)分析了Android編程過程中常見的內(nèi)存溢出情況與對應(yīng)的解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • 基于Flutter實(shí)現(xiàn)轉(zhuǎn)場動效的示例代碼

    基于Flutter實(shí)現(xiàn)轉(zhuǎn)場動效的示例代碼

    動畫經(jīng)常會用于場景切換,比如滑動,縮放,尺寸變化。Flutter?提供了Transition系列的動畫組件,可以讓場景轉(zhuǎn)換動畫變得更加簡單。本文整理了常用的Transition組件的應(yīng)用,需要的可以參考一下
    2022-05-05
  • Android WebView調(diào)用本地相冊的方法

    Android WebView調(diào)用本地相冊的方法

    這篇文章主要為大家詳細(xì)介紹了Android WebView調(diào)用本地相冊的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Android自定義控件之圓形進(jìn)度條動畫

    Android自定義控件之圓形進(jìn)度條動畫

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件之圓形進(jìn)度條動畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Android實(shí)現(xiàn)調(diào)取支付寶健康碼

    Android實(shí)現(xiàn)調(diào)取支付寶健康碼

    大家好,本篇文章主要講的是Android實(shí)現(xiàn)調(diào)取支付寶健康碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Android Studio IDE升級4.1以后Start Failed

    Android Studio IDE升級4.1以后Start Failed

    這篇文章主要介紹了Android Studio IDE升級4.1以后Start Failed,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • flutter  TextField換行自適應(yīng)的實(shí)現(xiàn)

    flutter TextField換行自適應(yīng)的實(shí)現(xiàn)

    這篇文章主要介紹了flutter TextField換行自適應(yīng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • android開機(jī)自啟動原理與實(shí)現(xiàn)案例(附源碼)

    android開機(jī)自啟動原理與實(shí)現(xiàn)案例(附源碼)

    完成一下步驟后,啟動一次程序,完成注冊。等下次手機(jī)開機(jī)時(shí),該軟件即會自動啟動,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈
    2013-06-06
  • Android 進(jìn)入設(shè)備后臺data文件夾的辦法

    Android 進(jìn)入設(shè)備后臺data文件夾的辦法

    Android 進(jìn)入設(shè)備后臺data文件夾的辦法,需要的朋友可以參考一下
    2013-05-05
  • Android開發(fā)實(shí)現(xiàn)拍照功能的方法實(shí)例解析

    Android開發(fā)實(shí)現(xiàn)拍照功能的方法實(shí)例解析

    這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)拍照功能的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android拍照功能的具體實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10

最新評論

招远市| 扎囊县| 利辛县| 鄱阳县| 桑植县| 英超| 苗栗县| 建阳市| 乾安县| 本溪市| 天气| 云南省| 原平市| 浪卡子县| 江城| 马山县| 安庆市| 合作市| 庆阳市| 甘泉县| 文登市| 晋中市| 沐川县| 海原县| 安徽省| 荥经县| 稻城县| 西林县| 武隆县| 绍兴县| 黑龙江省| 南雄市| 万安县| 淮安市| 界首市| 奉新县| 连南| 台北县| 新宾| 颍上县| 新宾|