使用Button 可能都会监听之 当其被点击 就会有函数负责回调 那么其到底是怎么实现的呢?
今天要做的就是摸清楚之 为了减少不必要的麻烦 打算extends EditText 并在其上设立监听器
[代码 步骤]
1. 定义Edit2Text 且extends EditText
public class Edit2Text extends EditText {
OnTextChangedListener changedListener;
TextWatcher tWatcher;
}
2. 定义其上的监听器:OnTextChangedListener 并定义函数:onChanged() 用于执行具体回调
public static interface OnTextChangedListener {
public void onChanged(Edit2Text e2t, String text);
}
需要注意的 这几行代码的修饰关键字:
1. static :使其能够脱离Edit2Text而存在
2. interface : 使其自动填充其内部函数
3. “void onChanged(Edit2Text e2t, String text)” 中的第一个参数e2t 用于做分别 具体奥妙 后面再细说
3. 设定监听器
public void setOnChangedListener(OnTextChangedListener l){
changedListener = l;
}
4. 定义TextWatcher 当字符内容改变 通知监听器
* 定义TextWatcher'
tWatcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
updateText(s.toString());
}
};
this.addTextChangedListener(tWatcher);
* 通知监听器
private void updateText(String s){
changedListener.onChanged(this, s);
}
5. 如何使用
public class Edit2TextTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Edit2Text e2t = new Edit2Text(this);
setContentView(e2t);
e2t.setOnChangedListener(new Edit2Text.OnTextChangedListener(){
@Override
public void onChanged(Edit2Text e2t, String text) {
// TODO Auto-generated method stub
Log.d("TAG","[String:]"+text);
}
});
}
}
6. emulator 运行截图:
*
* Log 信息:
D/dalvikvm( 674): GC freed 223 objects / 8848 bytes in 108m
D/TAG ( 941): [String:]i am
D/TAG ( 941): [String:]i am
D/TAG ( 941): [String:]i am e
D/TAG ( 941): [String:]i am ed
D/TAG ( 941): [String:]i am edi
D/TAG ( 941): [String:]i am edit
D/TAG ( 941): [String:]i am edit2
D/TAG ( 941): [String:]i am edit2t
D/TAG ( 941): [String:]i am edit2te
D/TAG ( 941): [String:]i am edit2tex
D/TAG ( 941): [String:]i am edit2text
D/TAG ( 941): [String:]i am edit2text,
D/TAG ( 941): [String:]i am edit2text,
D/TAG ( 941): [String:]i am edit2text, h
D/TAG ( 941): [String:]i am edit2text, he
D/TAG ( 941): [String:]i am edit2text, hel
D/TAG ( 941): [String:]i am edit2text, hell
D/TAG ( 941): [String:]i am edit2text, hello
D/TAG ( 941): [String:]i am edit2text, hello!
分享到:
相关推荐
button5.setOnClickListener(operator5_1); button6.setOnClickListener(operator6); // caculateService =new CaculateService(); serviceIntent=new Intent(ActivityDemo.this,CaculateService.class); ...
button.setOnClickListener(//为按钮对象添加OnClickListener接口实现 //OnClickListener为View的内部接口,其实现者负责监听鼠标点击事件 new View.OnClickListener(){ public void onClick(View v){ ...
Buttonbtn=(Button)findViewById(R.id.button); Buttonbtn2=(Button)findViewById(R.id.button2); btn.setOnClickListener(listener); btn2.setOnClickListener(listener2);} OnClickListenerlistener=new ...
QuizActivity 的Android源码,仅供参考。... import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View... mFalseButton.setOnClickListener(new View.OnClickListener() {
button1.setOnClickListener(new DownTextListener()); button2.setOnClickListener(new DownMP3Listener()); } class DownTextListener implements OnClickListener{ @Override public void onClick(View v) ...
cl = new Button.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btnLeft: leftView(); break; case R.id.btnRight: ...
fuhao[6].setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub str=""; et.setText(str); vi=v; } }); fuhao[7].setOnClickListener...
button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { String mobile = mobileText.getText().toString(); //拔打电话号码 //"android.intent.action.CALL" ...
btPoint.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { String str1=etResult.getText().toString(); if(str1.equals("")){ etResult.setText(""); }else{ ...
downloadMp3Button.setOnClickListener(new DownloadMp3Listener()); } class DownloadTxtListener implements OnClickListener{ public void onClick(View v) { HttpDownloader httpDownloader = new ...
public class MyBtnListener implements OnClickListener{ private final int layout_id; public MyBtnListener(int layout) { layout_id = layout; } @Override public void onClick(View v) { ...
btn.setOnClickListener(new OnClickListener(){//添加OnClickListener监听器 @Override public void onClick(View v) {//重写onClick方法 Button btn = (Button)findViewById(R.id.btn);//获取Button对象 ...
viewHold.button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { image.image = R.drawable.img2; image.button_title = "img2"; image.image_tite ...
button0.setOnClickListener(new OnClickListener() { public void onClick(View v) { CreatDialog(DIALOG_0); } }); Button button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener...
btnUpper.setOnClickListener(new View.OnClickListener() {//添加监听器 @Override public void onClick(View v) {//重写onClick方法 am.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager....
btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast toast = Toast.makeText(ToastSampleActivity.this, "简单的toast", Toast.LENGTH_SHORT)...
myButton3.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { openOptionsMenu(); } }); ``` 在上面的代码中,我们首先为Button按钮设置了OnClickListener事件,然后...
更改小空间widget的位置(本例中Button),程序调用出错button.setOnClickListener(new OnClickListener())
button1.setOnClickListener(this); UUID uuid = UUID.randomUUID(); tv.setText(uuid.toString()); } @Override public void onClick(View v) { UUID uuid = UUID.randomUUID(); tv.setText(uuid....
class AlphaButtonListener implements View.OnClickListener { public void onClick(View v) { //创建一个AnimationSet对象,参数为Boolean型, //true表示使用Animation的interpolator,false则是使用自己...