5

私は Android アプリケーションに取り組んでいます。私のアプリでは、テキストに基づいて画像を使用する必要がありOnChangeListener()ますEditText

edt.addTextChangedListener(this);  
@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
    CharSequence cs=convert(edt.getText.toString());
            edt.setText(cs);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stub


}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub


}

setText()しかし、上記のコードで例外が発生しています。例外の理由がメソッドからの呼び出しであることはわかっていますafterTextChanged()。しかしEditText、同じテキストの変更に基づいてテキストの値を変更する必要がありますEditText。友達を助けてください

4

2 に答える 2

8

もう1つの解決策は、ブール変数を使用することです。これにより、無限のコールスタックに陥らず、最終的にstackoverflow exception

public void afterTextChanged(Editable s) {
    if(!flag) 
    {
            flag = true;

            edt.setText("string");

            flag = false;
    }
}
于 2013-06-21T05:24:08.393 に答える
1

ここで説明されているように、テキストを設定する前にリスナーを削除し、完了後に再度登録するだけです。

onTextChanged 実装を追加した後に EditText テキストをクリアする

于 2012-08-30T07:15:52.783 に答える