日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android textwatcher 获取当前控件,TextWatcher如何找到调用它的EditText

發布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android textwatcher 获取当前控件,TextWatcher如何找到调用它的EditText 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

和我在南方一起工作的朋友說,“南北方的差異其實蠻大的。”我家在北方,也在南方工作,不過我倒是覺得差異不怎么大,因為我在北方的時候,就沒有女朋友,而來到了南方,同樣沒有女朋友。

開發時遇到一個問題,如同標題,當一個類繼承了TextWatcher時,倘若這個類中有很多EditText控件,那么如何知道調用TextWatcher的是哪一個EditText控件呢?如果一個類繼承的是OnClickListener,那可以通過View獲取控件的Id值,從而分辨控件,做對應操作。可惜TextWatcher似乎沒有類似的方法。我是這樣解決的:

布局文件:

很簡單,只是寫了幾個EditText控件。

主類:

package?com.example.edittexttest;

import?android.app.Activity;

import?android.os.Bundle;

import?android.text.Editable;

import?android.text.TextWatcher;

import?android.view.View;

import?android.widget.EditText;

import?android.widget.TextView;

import?android.widget.Toast;

public?class?EditTextTest?extends?Activity?{

EditText?edit1,?edit2,?edit3,?edit4,?edit5;

@Override

protected?void?onCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_edit_text_test);

edit1?=?(EditText)?findViewById(R.id.edit1);

edit1.addTextChangedListener(new?ClassOfTextWatcher(edit1));

setCursorToEnd(edit1);

edit2?=?(EditText)?findViewById(R.id.edit2);

edit2.addTextChangedListener(new?ClassOfTextWatcher(edit2));

setCursorToEnd(edit2);

edit3?=?(EditText)?findViewById(R.id.edit3);

edit3.addTextChangedListener(new?ClassOfTextWatcher(edit3));

setCursorToEnd(edit3);

edit4?=?(EditText)?findViewById(R.id.edit4);

edit4.addTextChangedListener(new?ClassOfTextWatcher(edit4));

setCursorToEnd(edit4);

edit5?=?(EditText)?findViewById(R.id.edit5);

edit5.addTextChangedListener(new?ClassOfTextWatcher(edit5));

setCursorToEnd(edit5);

}

private?class?ClassOfTextWatcher?implements?TextWatcher?{

private?TextView?view;

public?ClassOfTextWatcher(View?view)?{

if?(view?instanceof?TextView)

this.view?=?(TextView)?view;

else

throw?new?ClassCastException(

"view?must?be?an?instance?Of?TextView");

}

@Override

public?void?afterTextChanged(Editable?s)?{

if?(s.length()?<=?0)?{

switch?(view.getId())?{

case?R.id.edit1:

Toast.makeText(EditTextTest.this,?"第一個編輯框為空!",

Toast.LENGTH_LONG).show();

break;

case?R.id.edit2:

Toast.makeText(EditTextTest.this,?"第二個編輯框為空!",

Toast.LENGTH_LONG).show();

break;

case?R.id.edit3:

Toast.makeText(EditTextTest.this,?"第三個編輯框為空!",

Toast.LENGTH_LONG).show();

break;

case?R.id.edit4:

Toast.makeText(EditTextTest.this,?"第四個編輯框為空!",

Toast.LENGTH_LONG).show();

break;

case?R.id.edit5:

Toast.makeText(EditTextTest.this,?"第五個編輯框為空!",

Toast.LENGTH_LONG).show();

break;

default:

break;

}

}

}

@Override

public?void?beforeTextChanged(CharSequence?s,?int?start,?int?count,

int?after)?{

}

@Override

public?void?onTextChanged(CharSequence?s,?int?start,?int?before,

int?count)?{

}

}

//將編輯框的光標移動到末尾

public?void?setCursorToEnd(EditText?text){

String?content?=?text.getText().toString();

text.setSelection(content.length());

}

}

寫了一個叫“ClassOfTextWatcher”的內部類,它實現了TextWatcher接口,這個內部類的構造方法中傳入View控件來獲取控件的Id。

效果圖:

總結

以上是生活随笔為你收集整理的android textwatcher 获取当前控件,TextWatcher如何找到调用它的EditText的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。