【问题标题】:How do I permanently show softkeyboard on android如何在android上永久显示软键盘
【发布时间】:2016-03-01 16:19:26
【问题描述】:

我需要软键盘始终开启。 这条线似乎在启动时做的事情,但是在我按下回车键并检查一个值之后,它仍然隐藏自己。 方法调用后我尝试再次放置,但没有帮助。

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
}

【问题讨论】:

  • 为什么需要永远显示键盘?使用它的用户会讨厌你。我认为是概念问题,而不是编程问题。也许不可能永远显示一个键盘,而不能在用户需要时隐藏它。
  • 好吧,我只是在测试……我希望应用程序的这一部分始终打开键盘,因为用户会重复输入值。
  • 尽量将焦点放在输入中以避免隐藏键盘,这是我知道的唯一方法(也许有人可以帮助你),但我认为这是操作系统的一项安全功能

标签: java android keyboard show-hide android-softkeyboard


【解决方案1】:

把它放在你的活动的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);

另外,这将要求您将焦点放在您的 ediText 上以再次调用键盘:

v.requestFocus();

【讨论】:

    猜你喜欢
    • 2018-02-19
    • 2013-12-16
    • 2016-02-11
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多