Android webviewページリスニングダイアログクリックイベント
2772 ワード
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
現在、このような問題が発生しています.HTML 5のページにはAlertダイアログが表示されます.この文章は削除されています.Android側はユーザーが確定ボタンをクリックし、前のリストページに戻ってページを更新し、バックグラウンドで削除されたデータを削除する必要があります.具体的には、次のようにします.
次のような問題が発生したらview.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
この間違いはnew AlertDialogにある.Builder(mcontext)、ここでのパラメータはAlertDialogですが.Builder(Context context)は、getApplicationContext()で取得したContextを使用するのではなく、Activityを使用する必要があります.Activityが1つしかフォームを追加できないためです.解決方法:new AlertDialog.Builder(Context context)のパラメータはActivity.この(ActivityはあなたのActivityの名前です)を入力するとDialogが正しく作成されます.
現在、このような問題が発生しています.HTML 5のページにはAlertダイアログが表示されます.この文章は削除されています.Android側はユーザーが確定ボタンをクリックし、前のリストページに戻ってページを更新し、バックグラウンドで削除されたデータを削除する必要があります.具体的には、次のようにします.
setting.setJavaScriptEnabled(true);// js
setting.setJavaScriptCanOpenWindowsAutomatically(true);
webview.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message,
final JsResult result) {
Log.i("aaa", "onJsConfirm" + "," + "url: " + url);
AlertDialog.Builder builder = new AlertDialog.Builder(ArticalDetailAct.this);
builder.setMessage(message)
.setNeutralButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
arg0.dismiss();
finish();
}
}).show();
result.cancel();
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url,
String message, final JsResult result) {
// TODO Auto-generated method stub
Log.i("aaa", "onJsConfirm" + "," + "url: " + url);
//
// DialogUtils.dialogBuilder(mContext, " ", message,
// new DialogCallBack() {
//
// @Override
// public void onCompate() {
// Log.i(TAG, "onJsConfirm,onCompate");
// result.confirm();
// }
//
// @Override
// public void onCancel() {
// Log.i(TAG, "onJsConfirm,onCancel");
// result.cancel();
// }
// });
return true;
}
});
次のような問題が発生したらview.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
この間違いはnew AlertDialogにある.Builder(mcontext)、ここでのパラメータはAlertDialogですが.Builder(Context context)は、getApplicationContext()で取得したContextを使用するのではなく、Activityを使用する必要があります.Activityが1つしかフォームを追加できないためです.解決方法:new AlertDialog.Builder(Context context)のパラメータはActivity.この(ActivityはあなたのActivityの名前です)を入力するとDialogが正しく作成されます.