• 16-01-2017, 23:25:52
    #1
    Arkadaşlar, kendimce basit bir uygulama yapmaya çalışıyorum. Fakat webview ile sayfayı getirdikten sonra geri tuşuna basınca hata veriyor. İnternette birçok kod buldum fakat hata veriyor.
    package com.example.ramazan.myapplication;
    
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    
    
    public class MainActivity extends Activity {
        @SuppressLint("SetJavaScriptEnabled")
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            WebView myWebView = (WebView) findViewById(R.id.web_engine);
            myWebView.setWebViewClient(new MyBrowser());
            myWebView.clearCache(true);
            myWebView.clearHistory();
            myWebView.getSettings().setJavaScriptEnabled(true);
            myWebView.getSettings().setLoadsImagesAutomatically(true);
            myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
            myWebView.loadUrl("http://www.ruyatabirleriara.com/");
        }
        @Override
       
    
        private class MyBrowser extends WebViewClient {
    
            @Override
            public void onPageFinished(WebView view, String url) {
                if (findViewById(R.id.splach_screen).getVisibility() == View.VISIBLE) {
                    // show webview
                    findViewById(R.id.main_view).setVisibility(View.VISIBLE);
                    // hide splash screen
                    findViewById(R.id.splach_screen).setVisibility(View.GONE);
                }
            }
        }
    
    
    }
    Bu kodların neresine nasıl bir kod ekliyebilirim. Geri tuşuna basınca eğer sayfa varsa geri gitsin, yoksa uygulamadan çıkmak istiyormusunuz diye sorsun. Yardımcı olan arkadaşlara şimdiden Allah razı oslun.
  • 16-01-2017, 23:44:45
    #2
        boolean doubleBackToExitPressedOnce = false;
    
        @Override
        public void onBackPressed() {
            if(webView.canGoBack())
            {
                webView.goBack();
            }
            else
            {
                if (doubleBackToExitPressedOnce) {
                    super.onBackPressed();
                    return;
                }
    
                this.doubleBackToExitPressedOnce = true;
                Toast.makeText(this, "Çıkmak için Geri'ye bir kere daha basınız.", Toast.LENGTH_SHORT).show();
    
                new Handler().postDelayed(new Runnable() {
    
                    @Override
                    public void run() {
                        doubleBackToExitPressedOnce=false;
                    }
                }, 2000);
            }
        }
  • 17-01-2017, 00:11:44
    #3
    Önce onback pressed metodunu ekleyeceksin(Ctrl+O yaparak) Bu metodun içine cangoback ile geri gidip gidemeyeceğini kontrol edersin. geri gidebiliyorsa webview.goback dersin gidemiyorsa uygulamayı kapatırsın.
  • 17-01-2017, 22:31:47
    #4
    AwoApp adlı üyeden alıntı: mesajı görüntüle
    Önce onback pressed metodunu ekleyeceksin(Ctrl+O yaparak) Bu metodun içine cangoback ile geri gidip gidemeyeceğini kontrol edersin. geri gidebiliyorsa webview.goback dersin gidemiyorsa uygulamayı kapatırsın.
    Hocam Ctrl+O yaptığımda açılan pencerede onBack metodu çıkmıyor. Sanırım bu yüzden hata veriyordu. Nasıl yükleyebilirim.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 21:51:37 -->-> Daha önceki mesaj 21:38:00 --

    asyildiz adlı üyeden alıntı: mesajı görüntüle
        boolean doubleBackToExitPressedOnce = false;
    
        @Override
        public void onBackPressed() {
            if(webView.canGoBack())
            {
                webView.goBack();
            }
            else
            {
                if (doubleBackToExitPressedOnce) {
                    super.onBackPressed();
                    return;
                }
    
                this.doubleBackToExitPressedOnce = true;
                Toast.makeText(this, "Çıkmak için Geri'ye bir kere daha basınız.", Toast.LENGTH_SHORT).show();
    
                new Handler().postDelayed(new Runnable() {
    
                    @Override
                    public void run() {
                        doubleBackToExitPressedOnce=false;
                    }
                }, 2000);
            }
        }
    Hocam verdiğiniz kodları denedim. Fakat aynı hatayı veriyor.

    C:\Users\Ramazan\AndroidStudioProjects\MyApplication4\app\src\main\java\com\example\ramazan\myapplication\MainActivity.java
    Error:(30, 19) error: non-static method canGoBack() cannot be referenced from a static context
    Error:(32, 20) error: non-static method goBack() cannot be referenced from a static context
    Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
    > Compilation failed; see the compiler error output for details.
    Information:Total time: 24.179 secs
    Information:3 errors
    Information:0 warnings
    Information:See complete output in console


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:31:47 -->-> Daha önceki mesaj 21:51:37 --

    Yardımcı olan arkadaşlardan Allah razı olsun. Sorunu çözdüm. Aşağıdaki kırmızı olan kodları yeşil olanla değiştirdim.
    WebView myWebView = (WebView) findViewById(R.id.web_engine);
    this.myWebView = (WebView) findViewById(R.id.web_engine);
  • 17-01-2017, 22:32:30
    #5
    activitynin namespacende ctrl+o yapmalısınız on create içinde değil.