2012-03-27 2 views
0

Я пытаюсь разделить контент на Facebook при нажатии на мою кнопку ОтправитьОшибка создания AlertDialog в OnClick

я имею трудности при создании диалогового окна оповещения в OnClick,

((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 открыть себя в другой деятельности, это не то, что я хочу

ответ

1

Попробуйте:

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

    (... some code here...) 

builder.show(); 

И вы должны setWebViewClient так:

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

facebookWV.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading (WebView view, String url) { 
     return false; 
    } 
}); 
+0

У меня такой же эффект, что и у моей второй попытки, мой веб-просмотр построен в другом виде –

+0

работает как шарм! Большое спасибо –

1

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

+0

изменяется ошибка: Вызов startActivity() из-за пределов контекста деятельности требует флаг FLAG_ACTIVITY_NEW_TASK. Это действительно то, что вы хотите? –

+0

@RenaudFavier Ну, я не знаю, что вы пытаетесь сделать, поэтому добавьте этот флаг в 'Intent', который вы используете в' startActivity() '. – Luksprog

+0

no no Я не пытаюсь начать какую-либо деятельность, я просто не хочу отображать веб-просмотр в своем alertdialog, я не делаю ничего, кроме того, что я показываю вам –