【问题标题】:Webview Inside popup window androidWebview里面弹出窗口android
【发布时间】:2015-04-15 14:41:03
【问题描述】:

嗨, 如上图所示,我遇到了一个问题,左侧有一个 webview 内的按钮。当我单击按钮时,应该会出现 android 中的弹出窗口。在那个弹出窗口中,我需要一个 webview。 现在,在弹出窗口中没有 webview 的情况下一切正常。

这个弹出窗口是由javascript接口调用的

public class AppJavaScriptProxy {

    private Activity activity = null;

    public AppJavaScriptProxy() {

    }

    @JavascriptInterface
    public String showMessage(String footNoteNo) {
        Integer footNoteNoInt = Integer.parseInt(footNoteNo);
        footnote = myDbHelper.getFootnote(chapterNumber, footNoteNoInt);

        try {

            LayoutInflater inflater = (LayoutInflater) HomeActivity.this
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View layout = inflater.inflate(R.layout.footnote_popup,
                    (ViewGroup) findViewById(R.id.popup_footnote));
            popup = new PopupWindow(layout, ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, true);
            popup.showAtLocation(layout, Gravity.CENTER, 0, 0);
            txt_footnote=(TextView) layout.findViewById(R.id.text_footnote);
            txt_footnote.setTypeface(malayalamfont);
            popup_close = (ImageButton) layout.findViewById(R.id.btn_close_popup);
            txt_footnote.setText(footnote);

            final WebView footnoteWView = (WebView) layout.findViewById(R.id.footnotePopupWebview);
            footnoteWView.getSettings().setJavaScriptEnabled(true);
           footnoteWView.loadUrl("file:///android_asset/www/footNotePopup.html");
            footnoteWView.clearCache(true);

           footnoteWView.setWebViewClient(new WebViewClient(){
                public void onPageFinished(WebView view, String url){                        footnoteWView.loadUrl("javascript:getFootnote('" + footnote + "')");
                }
            });
            popup_close.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    popup.dismiss();
                }
            });
        }
        catch (Exception e) {
            e.printStackTrace();
        };
    }

}

请帮忙

【问题讨论】:

  • 请提供更多关于您的问题的细节。

标签: java javascript android webview popupwindow


【解决方案1】:

试试这个。

AlertDialog.Builder alert = new AlertDialog.Builder(this); 
alert.setTitle("Title here");

WebView wv = new WebView(this);
wv.loadUrl("http:\\www.yourweb.com");
wv.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);

        return true;
    }
});

alert.setView(wv);
alert.setNegativeButton("Close", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int id) {
        dialog.dismiss();
    }
});
alert.show();

【讨论】:

    【解决方案2】:
    public class List extends ActionBarActivity implements OnClickListener {
    LinearLayout layoutOfPopup;
    PopupWindow popupMessage;
    Button popupButton;
    WebView popupText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
    init();
    popupInit();
    public void init() {
        popupButton = (Button) findViewById(R.id.textview1);
        popupText = new WebView(this);
        popupText.setBackgroundColor(Color.TRANSPARENT);
        String text = "<html><body style=\"text-align:justify\"> %s </body></Html>";
        String summary = "Some text go here</body></html>";
        popupText.loadData(String.format(text, summary), "text/html", "utf-8");
        popupText.setVerticalScrollBarEnabled(true);
        popupText.setHorizontalScrollBarEnabled(true);
        insidePopupButton = new Button(this);
        insidePopupButton.setText("(X)Close");
        insidePopupButton.setBackgroundResource(R.drawable.myborder);
        layoutOfPopup = new LinearLayout(this);
    
        LayoutParams lpView = new LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
    
        layoutOfPopup.addView(insidePopupButton, lpView);
        layoutOfPopup.addView(popupText);
        layoutOfPopup.setOrientation(1);
        layoutOfPopup.setBackgroundColor(Color.WHITE);
    }
    
    public void popupInit() {
        popupButton.setOnClickListener(this);
        insidePopupButton.setOnClickListener(this);
        popupMessage = new PopupWindow(layoutOfPopup,
                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        popupMessage.setContentView(layoutOfPopup);
    
    }
    @Override
    public void onClick(View v) {
        //Code goes here and to open the show as drop down
    and dismiss
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      相关资源
      最近更新 更多