我在使用屏幕键盘时遇到问题。我有一个活动EditText
它显示键盘和用于转到第二个活动的按钮。第二个活动显示ProgressDialog
on its onCreate()
,执行某些操作,然后忽略ProgressDialog
。问题是,虽然ProgressDialog
显示 ,键盘也显示。
我希望键盘在创建之前消失ProgressDialog
。我彻底搜索了 Stack Overflow 和其他网站,但似乎没有任何内容适用于这种特定场景。
我附上两张照片供您参考:
这是第一个活动的代码:
public class FirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
}
});
}
}
这是第二个活动的代码:
public class SecondActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
// TODO: hide keyboard here
final ProgressDialog dialog = ProgressDialog.show(this, "", "Please wait...", true, false, null);
// in real code, here there is an AsyncTask doing stuff...
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
dialog.dismiss();
}
}, 5000);
}
}
Thanks
使用 phalt 发布的技术的变体解决:
InputMethodManager im = (InputMethodManager) this.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
此代码在期间可以正常工作onCreate
/onStart
/onResume
,因为不依赖于聚焦视图来获取窗口令牌。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)