0
我想要一個OnFocusChangeListener
類添加TextWatcher
具有焦點的EditText上的偵聽器,如果沒有,則將其刪除。 我做了這一點,但removeListener
崩潰的應用程序(我不知道有關語法...新手在這裏)在專注視圖中添加TextWatcher Listerner,如果不是,則將其刪除
MyOnFocusChangeListener:
public class Listener_Water_EdText_OnClick extends Fragment_Eau implements View.OnFocusChangeListener {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (v.getId() == R.id.et_wDebit && hasFocus) {
et_wDebit.addTextChangedListener(new Listener_Water_EdText_TxtWatcher(et_wDebit));
} else {
et_wDebit.removeTextChangedListener(new Listener_Water_EdText_TxtWatcher(et_wDebit));
}
if (v.getId() == R.id.et_wPuissance && hasFocus) {
et_wPuissance.addTextChangedListener(new Listener_Water_EdText_TxtWatcher(et_wPuissance));
} else {
et_wPuissance.removeTextChangedListener(new Listener_Water_EdText_TxtWatcher(et_wPuissance));
}
}
}
和公正的信息,我的TextWatcherListener:
public class Listener_Water_EdText_TxtWatcher extends Fragment_Eau implements TextWatcher {
private EditText et;
public Listener_Water_EdText_TxtWatcher(EditText et) {
this.et = et;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
Log.i("afterTextChanged", s.toString());
Log.i("Wcalc.PdcMax", WCalc.getPdCMaxToString());
switch (et.getId()) {
case R.id.et_wTetaAller:
try {
WCalc.setTetaAller(Integer.valueOf(s.toString()));
} catch (Exception e) {
WCalc.setTetaAller(0);
}
if (WCalc.getDebit() > 0) {
//Mise à jour de la puissance afin de relancer le calcul avec le nouveau dTeta
WCalc.setPuissance(WCalc.getPuissance());
et_wDebit.setText(WCalc.getDebitToString());
//Affichage des résultats du calcul
setResults();
}
break;
case R.id.et_wTetaRetour:
try {
WCalc.setTetaRetour(Integer.valueOf(s.toString()));
} catch (Exception e) {
WCalc.setTetaRetour(0);
}
if (WCalc.getDebit() > 0) {
//Mise à jour de la puissance afin de relancer le calcul avec le nouveau dTeta
WCalc.setPuissance(WCalc.getPuissance());
et_wDebit.setText(WCalc.getDebitToString());
//Affichage des résultats du calcul
setResults();
}
break;
case R.id.et_wPuissance:
try {
WCalc.setPuissance(Float.valueOf(s.toString()));
} catch (Exception e) {
WCalc.setPuissance(0);
}
et_wDebit.setText(WCalc.getDebitToString());
//Affichage des résultats du calcul
if (WCalc.getPuissance() > 0) {
setResults();
} else {
setNA();
}
break;
case R.id.et_wDebit:
try {
WCalc.setDebit(Float.valueOf(s.toString()));
} catch (Exception e) {
WCalc.setDebit(0);
}
et_wPuissance.setText(WCalc.getPuissanceToString());
//Affichage des résultats du calcul
if (WCalc.getDebit() > 0) {
setResults();
} else {
setNA();
}
break;
}
}
在此先感謝。
不錯!感謝您的回覆。 – Torp13
我還有另外一個問題:當我旋轉設備時,Texwatcher不再開火......但是沒有錯誤,所有的東西都可以。 – Torp13
你應該添加config:change –