1

When I press the back button, it returns to the main fragment. I am viewing pdf with webview. There are gifs in PDF. Clicking on these gifs opens in gif. When I press the back key, it goes to the application's home page, but I want it to stay in that fragment. I just want him out. When I press Backspace, I want to run the onBackPressed() function below.

public class AntrenmanProgramFragment extends Fragment {

  public void onBackPressed() {
       SharedPreferences sharedPref = getActivity().getSharedPreferences("sharedPref",Context.MODE_PRIVATE);
        final String loginAntreman = sharedPref.getString("backAntreman", "kayıt yok");
        tab = getActivity().findViewById(R.id.tabLayout);
        new Handler().postDelayed(
                new Runnable(){
                    @Override
                    public void run() {
                        if (loginAntreman.equals("0")){
                            tab.getTabAt(0).select();
                        }
                        if (loginAntreman.equals("1")){
                            tab.getTabAt(1).select();
                        }
                    }
                }, 100);
    }
}
Muntasir Aonik
  • 1,800
  • 1
  • 9
  • 22
stacksoru
  • 23
  • 4

2 Answers2

0

Try adding @Override to override that method in android with your method when in the ui of xml you are now.

//just like so
@Override
public void onBackPressed()
{
     SharedPreferences sharedPref = getActivity().getSharedPreferences("sharedPref",Context.MODE_PRIVATE);
    final String loginAntreman = sharedPref.getString("backAntreman", "kayıt yok");
    tab = getActivity().findViewById(R.id.tabLayout);
    new Handler().postDelayed(
            new Runnable(){
                @Override
                public void run() {
                    if (loginAntreman.equals("0")){
                        tab.getTabAt(0).select();
                    }
                    if (loginAntreman.equals("1")){
                        tab.getTabAt(1).select();
                    }
                }
            }, 100);
}
Dressy Fiddle
  • 163
  • 10
0

You are doing it in fragment witch don't have such method. Remove this part from here and add it to your activity.

public class YourActivity extends AppCompatActivity {

  @Override
  public void onBackPressed()  {
       SharedPreferences sharedPref = getActivity().getSharedPreferences("sharedPref",Context.MODE_PRIVATE);
        final String loginAntreman = sharedPref.getString("backAntreman", "kayıt yok");
        tab = findViewById(R.id.tabLayout);
        new Handler().postDelayed(
                new Runnable(){
                    @Override
                    public void run() {
                        if (loginAntreman.equals("0")){
                            tab.getTabAt(0).select();
                        }
                        if (loginAntreman.equals("1")){
                            tab.getTabAt(1).select();
                        }
                    }
                }, 100);
    }
}

Or if for some reason you need to do it in fragment here is a link how to handle onBackPressed in fragments. How to implement onBackPressed() in Fragments?