Android 避免2个相互影响的 EditText 死循环

两个EditText同时设置TextChangedListener后,会使程序进入死循环,解决方法如下:

[java] view plaincopy

  1. etExchangeRateEn = (EditText) findViewById(R.id.etExchangeRateEn);  

  2. etExchangeRateCn = (EditText) findViewById(R.id.etExchangeRateCn);  

  3.   

  4. twEN = new TextWatcher()  

  5. {  

  6.   

  7.     @Override  

  8.     public void afterTextChanged(Editable s)  

  9.     {  

  10.         etExchangeRateCn.addTextChangedListener(twCN);  

  11.     }  

  12.   

  13.     @Override  

  14.     public void beforeTextChanged(CharSequence s, int start, int count, int after)  

  15.     {  

  16.   

  17.     }  

  18.   

  19.     @Override  

  20.     public void onTextChanged(CharSequence s, int start, int before, int count)  

  21.     {  

  22.   

  23.         etExchangeRateCn.setText( "CN");  

  24.   

  25.     }  

  26.   

  27. };  

  28.   

  29. twCN = new TextWatcher()  

  30. {  

  31.   

  32.     @Override  

  33.     public void afterTextChanged(Editable s)  

  34.     {  

  35.         etExchangeRateEn.addTextChangedListener(twEN);  

  36.   

  37.     }  

  38.   

  39.     @Override  

  40.     public void beforeTextChanged(CharSequence s, int start, int count, int after)  

  41.     {  

  42.     }  

  43.   

  44.     @Override  

  45.     public void onTextChanged(CharSequence s, int start, int before, int count)  

  46.     {  

  47.   

  48.         etExchangeRateEn.setText("EN");  

  49.   

  50.     }  

  51. };  

  52. etExchangeRateEn.addTextChangedListener(twEN);  

  53. etExchangeRateCn.addTextChangedListener(twCN);  


转载于:https://my.oschina.net/bv10000/blog/187570

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值