当我将第一个活动转移到第二个活动时,我正在尝试打开键盘。 主要活动中有两个按钮 1)如果单击“NotShowKeyboard”按钮,它将打开带键盘的second.java活动 2)如果单击s“ShowKeyboard”按钮,它将打开带键盘的第二个.java活动和带焦点的EitdText 但问题是我不知道该怎么做。我在顶部显示键盘上放了一些示例,但在“ShowKeyboard”按钮上单击键盘打开并立即消失。
Main.java:
NotShowKeyboard.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
}
if (event.getAction() == MotionEvent.ACTION_UP) {
bundle.putBoolean("show", false);
Intent start = new Intent(Main.this, Start.class);
start.putExtras(bundle);
startActivity(start);
}
return false;
}
});
ShowKeyboard.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
}
if (event.getAction() == MotionEvent.ACTION_UP) {
bundle.putBoolean("show", true);
Intent start = new Intent(Main.this, Start.class);
start.putExtras(bundle);
startActivity(start);
}
return false;
}
});
Second.java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
i = getIntent();
extras = i.getExtras();
search = (EditText) findViewById(R.id.start_edit);
search.addTextChangedListener(myTextWatcher);
if((extras.getBoolean("show"))==true) {
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
}
//getting all stuff like buttons imageViews etc..
}
当NotShowButton单击时,应该打开:
当ShowButton单击时,应该打开:
答案 0 :(得分:12)
隐藏键盘:
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
显示键盘:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
答案 1 :(得分:5)
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
尝试将此代码放入onResume()
答案 2 :(得分:0)
有时它取决于设备,软键盘是否出现。在我的Vodafone Smart II手机上,我的Intexo TAB814(8英寸显示屏)没有显示它(3,5英寸显示屏)。相同的应用程序,但结果不同。它也semms依赖于你使用的Android版本。 (沃达丰智能II - > 2.1.3,Intenso平板电脑4.1)尝试使用其他设备