Как я могу вызвать веб-форму на другом экране? - PullRequest
2 голосов
/ 29 октября 2011

У меня есть 3 разных экрана: основной (содержит одно изображение), диалоговое окно (содержит другое изображение) и браузер (содержит веб-представление) и один источник активности, хорошо, в источнике активности я вызываю диалог по изображению клика в основном макете, затем в диалоговом окне отображается другое изображение, и я хочу, чтобы при щелчке на изображении диалогового окна приложение меняло основной макет для макета браузера, а затем браузер загружал определенный URI и затем закрывал диалоговое окно.

Мой код не работает, посколькуя не знаю, как мне нужно использовать webView в отдельном макете, например, для вызова в диалоге мне нужно использовать dialog.findViewById (R.id.webView1) или в основном только findViewById (R.id.webView1), но это не работаетсейчас и приложение вылетает ...

Мой код:

       ImageView imgMain = (ImageView)findViewById(R.id.imgMain1);

    imgMain.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        final Dialog dialog = new Dialog(mainActivity.this);
        dialog.setContentView(R.layout.dialog);
        dialog.setTitle("Android");
        dialog.setCancelable(true);
        dialog.show();

        //Boton de cerrar del dialog Android
        Button closeDialog = (Button)dialog.findViewById(R.id.closeDialogBT);
        closeDialog.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.cancel();
            }
        });

        //click en imagen juegos del dialog android
            ImageView imgDialog = (ImageView)dialog.findViewById(R.id.imgDialog1);
            imgDialog.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    final WebView mWebView = (WebView)findViewById(R.id.webView1);
                    mWebView.loadUrl("http://www.example.com");
                    mWebView.setWebViewClient(new WebViewClient());
                    setContentView(R.layout.browser);
                    dialog.cancel();
                }
        });


    }
    });

Спасибо !!!!

Ответы [ 2 ]

0 голосов
/ 14 апреля 2013

Попробуй это.Надеюсь, это поможет вам

public class Example extends Activity {

private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.translate);

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.example.com");
    mWebView.setWebViewClient(new HelloWebViewClient());


}

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView webview, String url)
    {
        webview.loadUrl(url);
        return true;
    }
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())
    {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
}
0 голосов
/ 11 февраля 2012

Почему вы хотите запустить WebView одного занятия из другого занятия.

Лучше начать работу с WebView с вашего «imgDialog» с намерения.

и отправить строку URL в дополнениях этого намерения.

на следующем шаге загрузите веб-просмотр со строкой URL, полученной из намерения.

...