欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android EditText詳解及示例代碼

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

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

  java.lang.Object

  android.view.View

  android.widget.TextView

  android.widget.EditText

  已知直接子類:

  AutoCompleteTextView, ExtractEditText

  已知間接子類:

  MultiAutoCompleteTextView

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

  1.簡(jiǎn)單的EditText輸入框

  非常簡(jiǎn)單,在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="簡(jiǎn)單的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ī)號(hào)碼

  android:password=”true”

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

  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í)做檢測(cè),比如如果用戶輸入不合法的內(nèi)容不予以顯示在EditText中, 這時(shí)候我就要用到addTextChangedListener 用它來監(jiān)聽用戶輸入狀態(tài)??梢栽诒O(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> 

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

相關(guān)文章

  • Android基于訊飛語音SDK實(shí)現(xiàn)語音識(shí)別

    Android基于訊飛語音SDK實(shí)現(xiàn)語音識(shí)別

    本例子是一個(gè)調(diào)用訊飛語音識(shí)別SDK的例子源碼是一個(gè)最純凈的Demo比較容易看懂。實(shí)現(xiàn)的是點(diǎn)擊按鈕開始語音監(jiān)聽,手機(jī)需要聯(lián)網(wǎng),2/3G的均可,希望本文對(duì)大家學(xué)習(xí)Android有所幫助
    2016-06-06
  • 常用Android布局文件優(yōu)化技巧總結(jié)

    常用Android布局文件優(yōu)化技巧總結(jié)

    Android布局加載是Android應(yīng)用程序的重要組成部分,布局加載是指將 XML文件中定義的視圖層次結(jié)構(gòu)加載到內(nèi)存中,在這篇文章中,我們將深入探討 Android 布局加載的原理,包括 Android 布局文件的結(jié)構(gòu)和布局文件的常見問題等方面,需要的朋友可以參考下
    2023-07-07
  • Android自定義View繪制彩色圓弧

    Android自定義View繪制彩色圓弧

    這篇文章主要為大家詳細(xì)介紹了Android自定義View繪制彩色圓弧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Flutter-AnimatedWidget組件源碼示例解析

    Flutter-AnimatedWidget組件源碼示例解析

    這篇文章主要為大家介紹了Flutter-AnimatedWidget組件源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Android Rreact Native 常見錯(cuò)誤總結(jié)

    Android Rreact Native 常見錯(cuò)誤總結(jié)

    這篇文章主要介紹了Android Rreact Native 常見錯(cuò)誤總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Android自定義View實(shí)現(xiàn)拖動(dòng)選擇按鈕

    Android自定義View實(shí)現(xiàn)拖動(dòng)選擇按鈕

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)拖動(dòng)選擇按鈕的具體代碼,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Flutter實(shí)現(xiàn)牛頓擺動(dòng)畫效果的示例代碼

    Flutter實(shí)現(xiàn)牛頓擺動(dòng)畫效果的示例代碼

    牛頓擺大家應(yīng)該都不陌生,也叫碰碰球、永動(dòng)球(理論情況下),那么今天我們用Flutter實(shí)現(xiàn)這么一個(gè)理論中的永動(dòng)球,可以作為加載Loading使用,需要的可以參考一下
    2022-04-04
  • 詳解Android studio 3+版本apk安裝失敗問題

    詳解Android studio 3+版本apk安裝失敗問題

    這篇文章主要介紹了詳解Android studio 3+版本apk安裝失敗問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Android studio將Module打包成Jar的方法

    Android studio將Module打包成Jar的方法

    這篇文章主要介紹了Android studio將Module打包成Jar的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • android 使用OkHttp上傳多張圖片的實(shí)現(xiàn)代碼

    android 使用OkHttp上傳多張圖片的實(shí)現(xiàn)代碼

    這篇文章主要介紹了android 使用OkHttp上傳多張圖片的相關(guān)資料,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07

最新評(píng)論