在同一活动上实现多个文本观看者
-
08-10-2019 - |
题
我实施 TextWatcher 在里面 活动:
public class Coordinate extends Activity implements TextWatcher {
/** Called when the activity is first created. */
......
然后
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
........
我的一部分问题是,拥有多个文本changedlistener会使该应用程序进入FC
txtDdLatDeg.addTextChangedListener(this);
txtDMmLatDeg.addTextChangedListener(this);
txtDMSLatDeg.addTextChangedListener(this);
然后
@Override
public void afterTextChanged(Editable s) {
String c = s.toString(); // read Content
// stuff to do later
((EditText)findViewById(R.id.txtDMSLatDeg)).setText(c);
((EditText)findViewById(R.id.txtDdLatDeg)).setText(c);
return;
} // End of TextChanged method
我需要能够更新一个 EDITTEXT 并随时进行其他两个更新。
我似乎只有一个只有一个 EDITTEXT 有 addChangeListener
.
我似乎也无法实施单独 afterTextChanged
个人的方法 EDITTEXT 字段。
解决方案
然后将它们作为实例变量创建:
TextWatcher watcher1 = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
@Override
public void afterTextChanged(Editable s) { }
};
TextWatcher watcher2 = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence c, int i, int i1, int i2) {}
@Override
public void onTextChanged(CharSequence c, int i, int i1, int i2) {}
@Override
public void afterTextChanged(Editable s) { }
};
然后,您可以做:
txtDdLatDeg.addTextChangedListener(watcher1);
txtDMmLatDeg.addTextChangedListener(watcher1);
其他提示
好,我通过使用 onFocus()
在 EDITTEXT 之前 afterTextChanged
方法:
onCreate (Bundle icicle) {
// Usual stuff here
txtDdLatDeg.addTextChangeListener(watcher1);
}
TextWatcher watcher1 = new TextWatcher() {
if (txtDdLatDeg.hasFocus()) {
@Override
public void afterTextChanged(Editable s) {
String c = s.toString();
((EditText)findViewById(R.id.txtDMSLatDeg)).setText(c);
((EditText)findViewById(R.id.txtDMmLatDeg)).setText(c);
}
}};
我为每个创建一个实例变量 EDITTEXT 盒子我需要观看/操纵。
不隶属于 StackOverflow