2017-11-30 9 views
-4

fragment Aで配置されているactivtityを使用しています。 fragment Aには、tab A,tab Btab Cの3つのタブが含まれており、アプリが起動するとtab Bが表示されます。これらの3つのタブはリストのいずれかがクリックされたときにリストを持ちますfragment Afragment Bに置き換えられました。これは、fragment Bからバックパックされたときにクリックされたタブを表示するはずです。tabactivityとfragmentを使用しているときに、バックプレスを処理する方法

+2

ようこそスタックオーバーフロー! [良い質問をどうやってどうやるのですか?](https://stackoverflow.com/help/how-to-ask)と[最小限で完全で検証可能な例を作成する方法](https: //stackoverflow.com/help/mcve)。 – Teasel

+2

これまでに試したことを投稿できますか? –

答えて

0

これに続きます。その素晴らしい例は、FragmentonBackPressed()の機能を実装するためにAbstract ClassBackable Fragmentを使用することです。

1)抽象クラスを作成する - これだけ

public class FragmentChannels extends BackableFragment { 

    ... 

    @Override 
    public void onBackButtonPressed() { 
     if (doTheThingRequiringBackButtonOverride) { 
      // do the thing 
     } else { 
      //go to your preferable fragment or activity when you press back on any fragment 
     } 
    } 

    ... 
} 

から

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 

public abstract class BackableFragment extends Fragment implements View.OnKeyListener { 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     view.setFocusableInTouchMode(true); 
     view.requestFocus(); 
     view.setOnKeyListener(this); 
    } 

    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (event.getAction() == KeyEvent.ACTION_UP) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
       onBackButtonPressed(); 
       return true; 
      } 
     } 

     return false; 
    } 

    public abstract void onBackButtonPressed(); 
} 

2)あなたのFragmentAbstract Classを実装します。 Reference

0
Try this in on click 

view = getActivity().findViewById(R.id.activity_page1); 
       ViewPager viewPager= (ViewPager)view.findViewById(R.id.viewpager); 
       int tab = viewPager.getCurrentItem(); 
       tab--; 
       viewPager.setCurrentItem(tab); 
関連する問題