兩個(gè)EditText賦值替換監(jiān)聽(tīng)卡死問(wèn)題

var slTextwatcher: TextWatcher? = null

? ? var jgTextwatcher: TextWatcher? = null

? ? ? ? slTextwatcher = object : TextWatcher {

? ? ? ? ? ? override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}

? ? ? ? ? ? override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {

? ? ? ? ? ? ? ? etJg.clearTextChangedListeners()

? ? ? ? ? ? ? ? if (charSequence.toString().isNotEmpty() && charSequence.toString().trim().toDouble() > 0.0) {

? ? ? ? ? ? ? ? ? ? etJg.setText(charSequence.toString().trim().toDouble() * 7.00)

? ? ? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? ? ? etJg.setText("")

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? override fun afterTextChanged(editable: Editable) {

? ? ? ? ? ? ? ? etJg.addTextChangedListener(jgTextwatcher);

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? jgTextwatcher = object : TextWatcher {

? ? ? ? ? ? override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}

? ? ? ? ? ? override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {

? ? ? ? ? ? ? ? etSl.clearTextChangedListeners()

? ? ? ? ? ? ? ? if (charSequence.toString().isNotEmpty() && charSequence.toString().trim().toDouble() > 0.0) {

? ? ? ? ? ? ? ? ? ? etSl.setText(charSequence.toString().trim().toDouble() / 7.00)

? ? ? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? ? ? etSl.setText("")

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? override fun afterTextChanged(editable: Editable) {

? ? ? ? ? ? ? ? etSl.addTextChangedListener(slTextwatcher);

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? etSl.addTextChangedListener(slTextwatcher);

? ? ? ? etJg.addTextChangedListener(jgTextwatcher);


(轉(zhuǎn)載)工具類(lèi)代碼如下:

import android.content.Context;

import android.text.TextWatcher;

import android.util.AttributeSet;

import android.widget.EditText;

import java.util.ArrayList;

/**

* @created: by Android Studio.

* @describe: ExtendedEditText

*/

public class ExtendedEditText extends EditText {

? ? private ArrayList<TextWatcher> mListeners = null;

? ? public ExtendedEditText(Context ctx) {

? ? ? ? super(ctx);

? ? }

? ? public ExtendedEditText(Context ctx, AttributeSet attrs) {

? ? ? ? super(ctx, attrs);

? ? }

? ? public ExtendedEditText(Context ctx, AttributeSet attrs, int defStyle) {

? ? ? ? super(ctx, attrs, defStyle);

? ? }

? ? @Override

? ? public void addTextChangedListener(TextWatcher watcher) {

? ? ? ? if (mListeners == null) {

? ? ? ? ? ? mListeners = new ArrayList<TextWatcher>();

? ? ? ? }

? ? ? ? mListeners.add(watcher);

? ? ? ? super.addTextChangedListener(watcher);

? ? }

? ? @Override

? ? public void removeTextChangedListener(TextWatcher watcher) {

? ? ? ? if (mListeners != null) {

? ? ? ? ? ? int i = mListeners.indexOf(watcher);

? ? ? ? ? ? if (i >= 0) {

? ? ? ? ? ? ? ? mListeners.remove(i);

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? super.removeTextChangedListener(watcher);

? ? }

? ? public void clearTextChangedListeners() {

? ? ? ? if (mListeners != null) {

? ? ? ? ? ? for (TextWatcher watcher : mListeners) {

? ? ? ? ? ? ? ? super.removeTextChangedListener(watcher);

? ? ? ? ? ? }

? ? ? ? ? ? mListeners.clear();

? ? ? ? ? ? mListeners = null;

? ? ? ? }

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容