0

さて、どうにかして次のことをしたいと思います。ダイアログで、ユーザーが 1 つの文字 (文字のみ) を選択できるようにします。入った後、彼はそれを見ることができるはずです。ユーザーが自分の選択に満足できない場合は、別の文字をクリックするだけでよいはずです。そして、彼は以前の手紙ではなく、今この手紙を見るべきです。

なるべく標準オプションでやりたい。現在入力されている文字を 1 つだけ表示する機能を備えた TextView を何らかの形でカスタマイズすることを考えています。または、何らかの形でアクティビティまたはフラグメントがキーボードからの入力を傍受し、すべての入力で、現在入力されている文字で textView を編集することができます。

誰がそれを行うことができるか教えてもらえますか?

4

2 に答える 2

1

クラスメンバー

private MyTextWatcher mTextWatcher;
private EditText mEditText;

onCreate などの適切な場所で setTextWatcher() を呼び出します。

public void setTextWatcher()
{
    mTextWatcher = new MyTextWatcher();
    mEditText.addTextChangedListener(mTextWatcher);
}

MyTextWatcher クラス

public class MyTextWatcher implements TextWatcher
{

    @Override
    public void afterTextChanged(Editable s)
    {

        String text = mEditText.getText().toString();
        if (text.length() > 1)
        {
            mEditText.removeTextChangedListener(mTextWatcher);
            mEditText.setText(text.substring(1));
            Selection.setSelection(mEditText.getText(), 1);
            mEditText.addTextChangedListener(mTextWatcher);
        }
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after)
    {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before,
            int count)
    {

    }

}
于 2013-07-17T22:31:02.560 に答える