Java 如何在android上永久显示软键盘
我需要我的软键盘始终处于打开状态。 这一行似乎在启动时完成了这项工作,但在我按enter键并选中一个值之后,它仍然隐藏了自己。 我尝试在调用该方法后再次放置它,但没有帮助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
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.的一个安全特性。