проблема с WebView ... возвращается к предыдущей активности - PullRequest
1 голос
/ 21 сентября 2011

У меня есть 3 действия - A, B и C. У меня есть список для действия A, и если я щелкаю по нему, он переходит к действию B. В действии B у меня есть кнопка, которая открывает действие C (веб-просмотрщик)со следующим кодом:

buyButton = (Button) findViewById(R.id.buyButton);

    buyButton.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v)
        {
           System.out.println("!!! buy !!!");

         /*Uri uri = Uri.parse("http://www.google.com");
         Intent intent = new Intent(Intent.ACTION_VIEW, uri);
         startActivity(intent);*/

            Intent startActivity = new Intent(getApplicationContext(), WebViewer.class);
            startActivity.putExtra("link","http://www.google.com");
            startActivityForResult(startActivity, 15);

        }
    });

Теперь, когда я нажимаю кнопку «Назад» на веб-просмотре C, действие B также закрывается.Я не уверен, почему это происходит.Есть намеки?Спасибо.

код веб-обозревателя:

public class WebViewer extends Activity {



ImageButton backButton;


@Override
public void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.streams);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title3);

    String url = "";
    Bundle extras = getIntent().getExtras();
    if(extras !=null) {
        url = extras.getString("link");
    }

    if (!url.startsWith("http://") && !url.startsWith("https://"))
           url = "http://" + url;

    final TextView title=(TextView) findViewById(R.id.title_text_view_success3);
    //title.setText("Saved Streams");

    backButton = (ImageButton) findViewById(R.id.back_button3);

    backButton.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v)
        {
           System.out.println("!!! BACK !!!");
           //finishActivity(0);
           onBackPressed();
        }
    });

    setContentView(R.layout.viewer);
    final WebView webView = (WebView) findViewById(R.id.webview);
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)
        {
            title.setText("Loading...");
            WebViewer.this.setProgress(progress * 100);

            if(progress == 100)
            title.setText(webView.getTitle());
        }
    });

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
        {
            // Handle the error
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            view.loadUrl(url);
            return true;
        }
    });

    webView.loadUrl(url);


 }



}

Ответы [ 3 ]

1 голос
/ 21 сентября 2011

Ну, во-первых, я не думаю, что вы должны использовать getApplicationContext при создании Intent.Вам нужно просто использовать ссылку на текущее действие. Таким образом, Android возвращает результат этого действия.

Пример:

Intent startActivity = new Intent(MyActivity.this, WebViewer.class);
1 голос
/ 21 сентября 2011

измените свой код, как показано ниже,

backButton.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v)
        {

if(webView.canGoBack()){
           System.out.println("!!! BACK !!!");

           webView.goBack();
}
        }
    });
0 голосов
/ 25 октября 2013

Я не уверен, что понимаю ваш вопрос.но если вы хотите вернуться назад, используйте код ниже.Я использую этот код в веб-обозревателе.

@Override
    public void onBackPressed() {
        if (mainWebView.canGoBack() == true) {
            mainWebView.goBack();
        } else {
            finish();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...