Java 使用EditText.setText(值)时停止刷新我的键盘

Java 使用EditText.setText(值)时停止刷新我的键盘,java,android,android-edittext,Java,Android,Android Edittext,下面是我用rxandroid编辑的文本。问题是,当我删除搜索框中的某些字符“\\”和setText时,键盘会刷新。因此,它使我的键盘切换回字母表(图1),而我想保留数字和特殊字符(图2)。有没有办法在不刷新页面的情况下设置EditText文本 SearchEditText = RxTextView.textChanges(searchbox) .map(CharSequence::toString) .debounce(2, Ti

下面是我用rxandroid编辑的文本。问题是,当我删除搜索框中的某些字符“\\”和setText时,键盘会刷新。因此,它使我的键盘切换回字母表(图1),而我想保留数字和特殊字符(图2)。有没有办法在不刷新页面的情况下设置EditText文本

 SearchEditText = RxTextView.textChanges(searchbox)
                .map(CharSequence::toString)
                .debounce(2, TimeUnit.SECONDS)
                .distinctUntilChanged()
                //.observeOn(Schedulers.computation()) // can test without this
                //.switchMap(RegrexAndActualNumberHelper::TrySearchValidation) // can test without this
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(result -> {
                //    searchbox.setText(result); // settext make the page refresh and reset the keyboard to alphabets
                    searchbox.setSelection(searchbox.getText().length()); // move the cursor b to end of the line.
                    if( !result.isEmpty() ){
                        getInventoryItems(view, searchbox, recycler);
                    }
                });


我找到了这种行为的快速解决方法。我使用“searchbox.getText().clear();”和“searchbox.append(result);”来代替setText。瞧,它工作了,屏幕永远不会刷新,键盘保持在原来的位置。我从这个stackoverflow问题中得到了这个想法。我找到了这种行为的快速修复方法。我使用“searchbox.getText().clear();”和“searchbox.append(result);”来代替setText。瞧,它工作了,屏幕永远不会刷新,键盘保持在原来的位置。我从这个stackoverflow问题中得到了这个想法。