1

すべてに。現在、キーボードから押された英数字キーでダイアログ(EditTextを含む)を起動するアプリに取り組んでいます。ここで、EditTextボックスに表示されるユーザータイプを指定します。これは、正しく機能している唯一の問題です。最初に押されたcharキーを使用して、EditTextボックスのダイアログを開きます。明らかに正しい最初のcharキーがありません。しかし、私はその文字を文字列として個別に取得します。そのcharキーを、ユーザーからの1文字目として入力されたEditTextに添付(表示)したいと思います。私はこれを試しました、

    {
final EditText search_d_text = (EditText) dialog
                    .findViewById(R.id.search_text1);
search_d_text.setText(s1);// si is the 1st char key launch dialog(containing edittext).
            search_d_text.setInputType(InputType.TYPE_NULL);
            search_d_text
                    .setOnEditorActionListener(new OnEditorActionListener() {
                        @Override
                        public boolean onEditorAction(TextView v, int actionId,
                                KeyEvent event) {

                            if (event != null
                                    && event.getAction() == KeyEvent.ACTION_DOWN) {
                                // Handle enter key
                                return true;
                            }
                            if (actionId == EditorInfo.IME_ACTION_NEXT) {
                                // Handle IME NEXT key
                                return true;
                            }
                            if (actionId == EditorInfo.IME_ACTION_DONE) {
                                // Handle IME DONE key
                                return true;
                            }
                            return false;
                        }
                    });
            search_string = search_d_text.getText().toString();
            enterd_text = search_d_text.getText();
                        // collecting  input text.
}

私が得ているのは例えばです。MASKと入力すると、ASKMと表示されます。

setText(s1)は、常に最後の文字として機能します。1番目のキーから始まる単語またはユーザー入力を表示したいと思います。ありがとうございました。

4

1 に答える 1

1

解決策が見つかりました。テキストカーソルの位置を編集するだけです。search_d_text.setSelection(s1.length());によって つまり、次の位置に。

于 2012-06-27T09:10:22.773 に答える