Java 如何在android上永久显示软键盘

Java 如何在android上永久显示软键盘,java,android,keyboard,show-hide,android-softkeyboard,Java,Android,Keyboard,Show Hide,Android Softkeyboard,我需要我的软键盘始终处于打开状态。 这一行似乎在启动时完成了这项工作,但在我按enter键并选中一个值之后,它仍然隐藏了自己。 我尝试在调用该方法后再次放置它,但没有帮助 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 短版本中的结构: //imports public class MainActivity extends AppCompatActivity i

我需要我的软键盘始终处于打开状态。 这一行似乎在启动时完成了这项工作,但在我按enter键并选中一个值之后,它仍然隐藏了自己。 我尝试在调用该方法后再次放置它,但没有帮助

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
短版本中的结构:

//imports

public class MainActivity extends AppCompatActivity implements TextWatcher{

//global variables


//stats
    public void stats() {
        //loading stats
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //on create stuff

        //never hide keyboard
        **getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);**

        //detecting enter
        editText.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                switch (keyCode) {
                    case KeyEvent.KEYCODE_ENTER:
                        // Enter has been pressed
                        takeTheGuess(v);
                        break;
                }
                return false;
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();
        stats();
    }

    public void takeTheGuess(View view) {
        //loading stats
        stats();
        //fixing blank field
        //checking for errors

        losowanie();

        stats();
    }

    public void losowanie() {
        Random rand = new Random();
        myNumber = rand.nextInt((100 - 0) + 1);
    }

    public void informacje(MenuItem item) {
       //app info
    }

    @Override
    public void afterTextChanged(Editable s) {
         //safe type
         //no numbers bigger than 100
}

将其放入活动的xml中:

android:windowSoftInputMode="stateAlwaysVisible" 
在处理回车键时,可以尝试使用以下代码之一:

InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(v, 0);
如果变量v中出现错误,请尝试:

keyboard.showSoftInput((EditText)v, 0);
另一种方法:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
另外,这将要求关注EditText以再次调用键盘:

v.requestFocus();

为什么要永远显示键盘?使用它的用户会讨厌你。我认为这是一个概念问题,而不是编程问题。也许永远显示一个键盘是不可能的,当用户想隐藏它时,没有选择。我只是在测试一些东西,我希望应用程序的这一部分始终打开键盘,因为用户会重复输入值。试着把焦点放在输入上,以避免隐藏键盘,这是我知道的唯一方法(也许有人能帮你),但我认为这是O.s.的一个安全特性。