2013-06-15 2 views
0

Теперь им не удалось получить кнопку возврата оборудования на работу. Приложение загружается отлично, как и страница, и все остальное, но как только я нажимаю кнопку «Назад», она падает, а затем закрывает. Инструкции Google всасываются также, поскольку я новичок, и они предполагают, что вы знаете определенную сумму.backbutton на моем андроидном веб-обзоре crash

Просьба сообщить, где я должен поместить код, если он не в том месте, а также если что-то не так с ним.

Cheers!

public class MainActivity extends Activity 

    { 

     final Activity activity = this; 

     @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 

      this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
      setContentView(R.layout.activity_main); 
      final WebView webView = (WebView) findViewById(R.id.webview); 
      webView.getSettings().setJavaScriptEnabled(true); 
      webSettings.setPluginState(PluginState.ON); 
      webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)"); 
      webView.setWebChromeClient(new WebChromeClient() { 
       public void onProgressChanged(WebView view, int progress) 
       { 
        activity.setTitle("Učitavanje..."); 
        activity.setProgress(progress * 100); 

        if(progress == 100) 
         activity.setTitle(R.string.app_name); 
       } 
      }); 

      webView.setWebViewClient(new WebViewClient() { 
       @Override 
       public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
       { 
        try { 
         webView.stopLoading(); 
        } catch (Exception e) { 
        } 
        try { 
         webView.clearView(); 
        } catch (Exception e) { 
        } 
        if (webView.canGoBack()) { 
         webView.goBack(); 
        } 
        webView.loadUrl("file:///android_asset/greska/greska.html"); 
        super.onReceivedError(webView, errorCode, description, failingUrl); 
       } 

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

      webView.loadUrl("http://mobile.myweb.rs"); 

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


     WebView webView; 
     @Override 
     public void onBackPressed(){ 

      if (webView.isFocused() && webView.canGoBack()) { 
        webView.goBack();  
      } 
      else { 
        super.onBackPressed(); 
        finish(); 
      } 
     } 

     } 

ответ

2

Не называйте super.onBackPressed И finish(). Используйте только один из них.

Редакция: Написать

webView = (WebView) findViewById(R.id.webview); 

вместо

final WebView webView = (WebView) findViewById(R.id.webview); 

Затем объявить

WebView webView 

перед вашей деятельностью OnCreate метод.

Вы получаете crach beacause, потому что вы пытаетесь использовать переменную WebView, которая на самом деле является нулевой.

+0

@Emirnop Я отредактировал ответ. – Lingviston

+0

Отлично, теперь он работает. Спасибо. – Emirnop

+0

Отлично, теперь отметьте его как фиксированный. –

Смежные вопросы