开/闭tls或自(银河S)
-
25-09-2019 - |
题
好吧,另一个奇怪的问题。我有活动Main.java 和DialogLikeActivity.java.
在 主 我
EditText (articleNumber) - phone input type (in .XML)
Button (articleOK)
list (list)
上 DialogLikeActivity (活性,但采用一个对话主题和与 问题:windowSoftInputMode="stateAlwaysVisible" 标签清单)我
EditText (articlePackaging) - phone input type (in .XML)
Button (finish)
我想要什么?当我进入主要活动键盘打电话的输入型和这很好。当我点EditText领域,填写的东西,点击OK静varible成为在国家1(总是显示键盘)-它只是静态的变量中的主要活动。
public static int keyboardMode = 1;
点击"OK"开辟了DialogLikeActivity用键盘打开(电话输入型)。当我点击"OK"onResume的主要踢
@Override
public void onResume() {
super.onResume();
if (keyboardMode == 1) {
showKeyboard(articleNumber);
} else {
hideKeyboard(articleNumber);
}
}
public static void showKeyboard(View view) {
InputMethodManager mgr = (InputMethodManager) myContext.getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
((InputMethodManager) myContext.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, 0);
articleNumber.setInputType(InputType.TYPE_CLASS_PHONE);
}
public static void hideKeyboard(View view) {
InputMethodManager mgr = (InputMethodManager) myContext.getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(view.getWindowToken(), 0);
articleNumber.setInputType(0);
}
// Listener to showKeyboard if user clicks on EditText field and set InputType to PHONE, insted it would remain (0)
articleNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showKeyboard(articleNumber);
}
});
// Listener so when user touches the list - it hides the keyboard and sets variable on 2 so keyboard is always HIDDEN
list.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
hideKeyboard(articleNumber);
keyboardMode = 2;
return false;
}
});
// Listener so when user clicks on ArticleOK - keyboard is always OPEN
articleOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
keyboardMode = 1;
Intent i = new Intent(NewOrderArticles.this, NewQuantityDialog.class);
i.putExtra("articleid", articleId);
startActivity(i);
}
}
});
和确保键盘打电话的输入类型。如果我howewer击/滚动名单在主要keyboardMode变成为2(总是隐藏)-这样的键盘隐藏(与hideKeyboard的方法称为清单。onTouch listener).如果我点击一些列表中的项目,它再次打开了DialogLikeActivity与开放键盘输入和电话的类型。如果我点击"OK"onResume在主要踢和隐藏的键盘(见码upthere).
怎么看起来像请看视频("确定"的按钮在视频是articleOK按钮)- 视频(3,24MB).
因此,实际上-如果我点击"OK"(articleOK)按钮 键盘始终必须显示, 如果我,然而开始滚动看的清单,或者点击某些项目的列表 键盘必须显示只有在DialogLikeActivity活动, 否则在主要它必须呆在隐藏(当然,如果我点击EditText场上的顶部就开辟了再)。
在视频可以看到宏达的愿望并且一切都只是我想要的方式,但是在银河系的 总是秀的一部分 是的工作,但如果我点击/滚动名单, 打开它是键盘的信类型(!) 而不是隐藏它.哪里有问题?
所以"确定"的按钮-总是显示键盘(在主要和DialogLikeActivity).如果挖掘/滚动名单显示键盘只在DialogLikeActivity.
解决方案
我有同样的问题EditText持久性有机污染物的键盘上的数字。点击后确定或取消,键盘虚拟不会隐藏和展示的键盘的信类型,在银河系三星设备。它的工作现在模拟器上2.1或2.2和片中的英雄,但不是在Galaxy S设备与2.2.我也试过:mgr.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY,0);但仍然没有机会
编辑:ok,问题就解决了与这一行:
mgr.toggleSoftInput(0, 0);
没有这些2行:
mgr.hideSoftInputFromWindow(view.getWindowToken(), 0);
articleNumber.setInputType(0);