質問

実装します テキストウォッチャー の中に アクティビティ:

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);
    ........

私の問題の一部は、複数のTextChangedListenerを使用するとアプリが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 そして、他の2つの更新をその場で持っています。
私はそれを動作させることができるようです 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 ボックス私は見る/操作する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top