Кнопка «Назад» на Android в приложении WebView Kills - PullRequest
0 голосов
/ 07 февраля 2012

* решаемые Я просто должен был публично объявить свою переменную webview, чтобы мой класс кнопки назад работал правильно. Спасибо за помощь

У меня есть уникальная настройка с классом webview, и все, что я погуглил, я нигде не получил.

Я использую кнопки для запуска веб-просмотра, и у меня возникает проблема, заключающаяся в том, что при нажатии кнопки «Назад» для возврата к экрану основного приложения оно просто убивает приложение. Я добавил код внизу, чтобы попытаться исправить мою проблему, но она не сработала.

Кстати, приведенный ниже код был обновлен до того, что в данный момент работает для меня.

package my.android.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Toast;

public class MobileAppActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

}
WebView wb;
public void onMyButtonClick01(View view)  
    {  
        Toast.makeText(this, "Pay your dues here!", Toast.LENGTH_SHORT).show(); 
        wb = new WebView(this);
        wb.loadUrl("http://www.link1.html");
        setContentView(wb);           
    }       
public void onMyButtonClick02(View view)  
{  
    Toast.makeText(this, "Re-Sign here!", Toast.LENGTH_SHORT).show(); 
    wb = new WebView(this);
    wb.loadUrl("http://www.link2.html");
    setContentView(wb);

}  
public void onBackPressed () {
    if(wb != null) {
        if(wb.canGoBack()) {
             wb.goBack();
        } else {
             setContentView(R.layout.main);
             wb = null;
        }
    } else {
        super.onBackPressed();
    }
} 
}

1 Ответ

0 голосов
/ 07 февраля 2012

Я предполагаю, что вы экономите на wb в другом месте?Не уверен, как вы получаете доступ к этому от onBackPressed().Допустим, у вас есть есть способ получить его.

public void onBackPressed () {
    if(wb != null) {
        if(wb.canGoBack()) {
             wb.goBack();
        } else {
             setContentView(R.layout.main);
             wb = null;
        }
    } else {
        super.onBackPressed();
    }
}
...