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

Android控件系列之EditText使用方法

 更新時(shí)間:2012年11月09日 12:21:56   作者:  
EditText是接受用戶輸入信息的最重要控件。通過前面課程的學(xué)習(xí),您可能會(huì)猜到可以利用EditText.getText()獲取它的文本,但真正的項(xiàng)目中,可能沒那么簡(jiǎn)單,需要更多的限制,如文本長(zhǎng)度限制,是否數(shù)字限制等等
學(xué)習(xí)目的:

1、掌握在Android中如何建立EditText
2、掌握EditText的常用屬性
3、掌握EditText焦點(diǎn)的事件、按鍵的事件(監(jiān)聽器)

介紹:

EditText是接受用戶輸入信息的最重要控件。通過前面課程的學(xué)習(xí),您可能會(huì)猜到可以利用EditText.getText()獲取它的文本,但真正的項(xiàng)目中,可能沒那么簡(jiǎn)單,需要更多的限制,如文本長(zhǎng)度限制,是否數(shù)字限制等等。

鑒于手機(jī)屏幕尺寸有限,您可能總想著如何節(jié)約控件。在每個(gè)用戶需要填寫內(nèi)容的文本框的左邊加上標(biāo)題在PC上是一種優(yōu)雅的方法,但在手機(jī)上就會(huì)顯的浪費(fèi),因此本例我們將學(xué)習(xí)如何利用一個(gè)EditText達(dá)到所有的效果:

 請(qǐng)注意第一個(gè)文本框,其他控件只是為了測(cè)試轉(zhuǎn)移焦點(diǎn)后的效果,我們樣例針對(duì)第一個(gè)文本進(jìn)行限制,用戶沒有輸入時(shí),它顯示“請(qǐng)輸入您的名字”作為提示,為了區(qū)分這只是一個(gè)提示而不是真正的文本,我們使用灰色來以示區(qū)分,當(dāng)用戶輸入自己的內(nèi)容時(shí),這個(gè)提示將會(huì)消失,而字體變?yōu)楹谏?,如下圖:

最后我們對(duì)EditText做了長(zhǎng)度限制,這可以簡(jiǎn)單的在XML中將它的maxLength屬性設(shè)定為一個(gè)值,但用戶輸入不了更多字符時(shí),會(huì)產(chǎn)生歧義,因此需要告知用戶無法繼續(xù)輸入的原因:

  

XML布局代碼如下:

復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#DDDDDD"
android:text="請(qǐng)輸入您的名字"
android:id ="@+id/et"
android:maxLength = "10"
></EditText>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="點(diǎn)擊轉(zhuǎn)換焦點(diǎn)"
></Button>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="點(diǎn)擊轉(zhuǎn)換焦點(diǎn)"
android:id ="@+id/et2"
></EditText>
</LinearLayout>

后臺(tái)代碼如下:
復(fù)制代碼 代碼如下:

//表示文本框是否為空
private Boolean isEmpty = true;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText et = (EditText)this.findViewById(R.id.et);
//監(jiān)聽控件的焦點(diǎn)改變事件
et.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
//獲取觸發(fā)事件的EditText
EditText clickEditText = (EditText)arg0;
//如果失去焦點(diǎn)
if(arg1 == false)
{
//獲取當(dāng)前文本
String text =clickEditText.getText().toString().trim();
//如果的確人為輸入過內(nèi)容
if(text.length()>0
&text.equals("請(qǐng)輸入您的名字")== false)
{
isEmpty = false;
clickEditText.setTextColor(Color.BLACK);
clickEditText.setText(text);
}
else
{
clickEditText.setText("請(qǐng)輸入您的名字");
clickEditText.setTextColor(Color.GRAY);
isEmpty = true;
}
}
//如果獲得焦點(diǎn)
else
{
clickEditText.setTextColor(Color.BLACK);
//如果處于未編輯狀態(tài),則清空“請(qǐng)輸入您的名字”這幾個(gè)字
if(isEmpty == true)
{
clickEditText.setText("");
}
}
}
});
//監(jiān)聽控件有新字符輸入
et.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
// TODO Auto-generated method stub
//獲取觸發(fā)事件的EditText
EditText clickEditText = (EditText)arg0;
//獲取當(dāng)前文本
String text =clickEditText.getText().toString().trim();
if(text.length()==10)
{
//提示用戶
Toast toast = Toast.makeText(MyActivity.this, "最大長(zhǎng)度為10個(gè)字符", Toast.LENGTH_SHORT);
toast.setGravity(0, 0, 0);
toast.show();
}
return false;
}
});
}


總結(jié):
本文介紹了如何在Android中使用EditText,并介紹了常用的屬性和事件,最后實(shí)現(xiàn)了一個(gè)用戶體驗(yàn)良好的,并且非常通用的文本限制和提示功能。

相關(guān)文章

  • VerticalBannerView仿淘寶頭條實(shí)現(xiàn)垂直輪播廣告

    VerticalBannerView仿淘寶頭條實(shí)現(xiàn)垂直輪播廣告

    這篇文章主要為大家詳細(xì)介紹了VerticalBannerView仿淘寶頭條實(shí)現(xiàn)垂直輪播廣告,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 用Android Studio3.0新功能加快構(gòu)建速度

    用Android Studio3.0新功能加快構(gòu)建速度

    本文主要介紹了使用Android Studio3.0新功能,加快Android Studio的構(gòu)建速度等相關(guān)做法。
    2017-11-11
  • Flutter 設(shè)置全局字體的實(shí)現(xiàn)

    Flutter 設(shè)置全局字體的實(shí)現(xiàn)

    本文主要介紹了Flutter 設(shè)置全局字體的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Android應(yīng)用內(nèi)懸浮窗Activity的簡(jiǎn)單實(shí)現(xiàn)

    Android應(yīng)用內(nèi)懸浮窗Activity的簡(jiǎn)單實(shí)現(xiàn)

    懸浮窗相信大家應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Android應(yīng)用內(nèi)懸浮窗Activity簡(jiǎn)單實(shí)現(xiàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • android 捕獲系統(tǒng)異常并上傳日志具體實(shí)現(xiàn)

    android 捕獲系統(tǒng)異常并上傳日志具體實(shí)現(xiàn)

    這篇文章介紹了android 捕獲系統(tǒng)異常并上傳日志具體實(shí)現(xiàn),有需要的朋友可以參考一下
    2013-09-09
  • Android OpenGL ES 實(shí)現(xiàn)抖音傳送帶特效(原理解析)

    Android OpenGL ES 實(shí)現(xiàn)抖音傳送帶特效(原理解析)

    這篇文章主要介紹了Android OpenGL ES 實(shí)現(xiàn)抖音傳送帶特效,抖音傳送帶特效推出已經(jīng)很長(zhǎng)一段時(shí)間了,前面也實(shí)現(xiàn)了下,最近把它整理出來了,如果你有仔細(xì)觀測(cè)傳送帶特效,就會(huì)發(fā)現(xiàn)它的實(shí)現(xiàn)原理其實(shí)很簡(jiǎn)單,需要的朋友可以參考下
    2022-07-07
  • 獲取Android簽名證書的公鑰和私鑰的簡(jiǎn)單實(shí)例

    獲取Android簽名證書的公鑰和私鑰的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)硪黄@取Android簽名證書的公鑰和私鑰的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • Android手機(jī)聯(lián)系人快速索引(手機(jī)通訊錄)

    Android手機(jī)聯(lián)系人快速索引(手機(jī)通訊錄)

    最近需要實(shí)現(xiàn)一個(gè)手機(jī)通訊錄的快速索引功能。根據(jù)姓名首字母快速索引功能,下面通過本篇文章給大家介紹Android手機(jī)聯(lián)系人快速索引(手機(jī)通訊錄)的相關(guān)代碼,需要的朋友參考下
    2015-12-12
  • 關(guān)于Android 6.0權(quán)限的動(dòng)態(tài)適配詳解

    關(guān)于Android 6.0權(quán)限的動(dòng)態(tài)適配詳解

    Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用戶體驗(yàn), 同時(shí)也為程序員帶來新的負(fù)擔(dān). 動(dòng)態(tài)權(quán)限管理就是這樣, 一方面讓用戶更加容易的控制自己的隱私, 一方面需要重新適配應(yīng)用權(quán)限,本文介紹了關(guān)于Android 6.0權(quán)限動(dòng)態(tài)適配的相關(guān)資料,需要的朋友可以參考下。
    2017-11-11
  • Flutter之?ListView組件使用示例詳解

    Flutter之?ListView組件使用示例詳解

    這篇文章主要為大家介紹了Flutter之?ListView組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10

最新評(píng)論