当软键盘可见时,背景图像显示黑底栏
问题描述:
我有一个android应用程序,我想输入密码,如果它是正确的,那么去新的活动。为此,我表现出与一个EditText field.If定制对话框密码是正确的,那么隐藏kayboard并进入下一activity.I二手下面的代码隐藏键盘当软键盘可见时,背景图像显示黑底栏
alertBuilder.setNeutralButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
new Thread(new Runnable() {
@Override
public void run() {
//start new acivity for result
}
}).start();
}
});
和负载使用startActivityForResult(意向下一个活动, requestCode)加载下一actvity,隐藏键盘背景图像后之前在dialog.But的OK按钮的一个的onClick线程内示出了黑色底杆等
当回此活动的背景图像显示像这样片刻。 我试过intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);并在清单文件中为此活动设置android:windowSoftInputMode =“adjustPan”。它不适合我。这里有什么问题,以及如何解决这个问题?
由于提前
答
关闭键盘之后,等待一小的延迟与可运行给你活动的背景片刻重绘。使用Handler
等待较小的延迟并返回到UI线程。
添加到您的类:
private Handler mHandler = new Handler();
定义一个Runnable:
private Runnable mRunnable = new Runnable() {
public void run() {
startActivityForResult(intent, resultCode);
}
};
更新你的代码:
alertBuilder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
// Wait a moment and jump to the next activity.
mHandler.postDelayed(mRunnable, 500);
}
});
它不工作 – 2013-03-25 07:12:35
查看具有实际延迟的更新处理程序是否适合您。 – 2013-03-25 07:26:49
准确地说,我不想在那里延迟。因为这个,我使用了一个线程来开始新的活动 – 2013-03-25 07:29:55