Ошибка создания AlertDialog в onClick - PullRequest
0 голосов
/ 27 марта 2012

Я пытаюсь поделиться контентом на Facebook, нажимая кнопку "Поделиться"

У меня проблемы с созданием диалогового окна с предупреждением при нажатии,

((Button) findViewById(R.id.actuDetailsShareButton)).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                AlertDialog.Builder builder = new AlertDialog.Builder(ActuDetailActivity.this);
            builder.setTitle("Partagez sur facebook");
            WebView facebookWV = new WebView(ActuDetailActivity.this);
            LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
            facebookWV.setLayoutParams(lp);
            facebookWV.loadUrl("https://m.facebook.com/sharer.php?u=http://www.lalal.com");
            builder.setView(facebookWV);
            builder.show();

            }
        });

вот мой logcat:

03-27 19:18:23.007: E/AndroidRuntime(24773): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

вот моя вторая попытка:

Dialog dialog = new Dialog(ActuDetailActivity.this);
                dialog.setContentView(R.layout.share_alert_dialog_layout);
                dialog.setTitle("lolol");
                dialog.setCancelable(true);
                ((TextView) dialog.findViewById(R.id.shareAlertDialogTextView)).setText("share on facebook");
                ((WebView) dialog.findViewById(R.id.shareAlertDialogWebView)).loadUrl("https://m.facebook.com/sharer.php?u=http://www.lalal.com");
                dialog.show();

но мой webView открывается в другом действии, это не то, что я хочу

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Попробуйте:

AlertDialog.Builder builder = new AlertDialog.Builder(YouActivityName.this);

    (... some code here...)

builder.show();

И вам нужно установитьWebViewClient следующим образом:

WebView facebookWV = new WebView(YouActivityName.this);
facebookWV.getSettings().setJavaScriptEnabled(true);

facebookWV.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading (WebView view, String url) {
        return false;
    }
});
1 голос
/ 27 марта 2012

Попробуйте изменить Context, который вы поставляете, на AlertDialog с getBaseContext() на YourActivityName.this.

...