在android的edittext中,将文本(或字符)与用户输入相结合

在android的edittext中,将文本(或字符)与用户输入相结合,android,android-edittext,Android,Android Edittext,对所有人。 现在我正在开发一个应用程序,它可以在键盘上按下的任何字母数字键上启动一个对话框(包含编辑文本)。现在,我想让EditText框中出现的用户类型正常工作,唯一的问题是,我想让第一次按下的char键在EditText框中打开对话框。我丢失了第一个字符键,这显然是正确的。但我分别以字符串的形式检索该字符。 现在,我们想将该字符键作为第一个字母附加(显示)到用户输入的EditText中。 我试过这个 { final EditText search_d_text = (EditText

对所有人。 现在我正在开发一个应用程序,它可以在键盘上按下的任何字母数字键上启动一个对话框(包含编辑文本)。现在,我想让EditText框中出现的用户类型正常工作,唯一的问题是,我想让第一次按下的char键在EditText框中打开对话框。我丢失了第一个字符键,这显然是正确的。但我分别以字符串的形式检索该字符。 现在,我们想将该字符键作为第一个字母附加(显示)到用户输入的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)始终作为最后一个字母。 我想显示从第一个键开始的单词或任何用户输入。 谢谢。

找到了解决方案, 刚刚移动了编辑文本光标的位置。通过 search_d_text.setSelection(s1.length());i、 e到下一个位置。

找到解决方案, 刚刚移动了编辑文本光标的位置。通过
search_d_text.setSelection(s1.length());i、 e转到下一个位置。

打开对话框的代码?感谢您的回复,在相同的活动中,只是一个弹出窗口。我实现了一个dispatchKeyEvent(KeyEvent事件)来检测键,如果它是字母数字键,则显示对话框。因此,我希望代码查看您是否将字符传递给对话框?@Dhereshsingh上述代码来自自定义对话框本身。search_d_text.setText(s1);代码在哪里打开对话框?感谢回复,在相同的活动中,只是一个弹出窗口。我实现了一个dispatchKeyEvent(KeyEvent事件)来检测键,如果它是字母数字键,则显示对话框。因此,我希望代码查看您是否将字符传递给对话框?@Dhereshsingh上述代码来自自定义对话框本身。search_d_text.setText(s1);