2016-07-23 41 views
1

我有一個擴展了AppCompatActivity的Activity。而也是在這個活動我有一個裝滿像這樣一個ViewPager:在父Activity中調用Fragment接口方法onBackPressed方法

private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFragment(new Tab1(), "Tab1"); 
     adapter.addFragment(new Tab2(), "Tab2"); 
     adapter.addFragment(new Tab3(), "Tab3"); 
     viewPager.setAdapter(adapter); 
    } 

在我的標籤片段我有一些庫中實現多選一RecyclerView。 我想通過按下硬件後退按鈕來實現關閉選擇模式。

我有我的片段此功能是:

public void closeSelectMode() { 
     if(mMultiSelector.isSelectable()) 
      setSelection(mMultiSelector); 
     super.onBackPressed(); 
    } 

但我不知道如何把這個功能在父活動onBackPressed()。

另外我試圖使用Fragment接口來實現這一點,但我不知道如何將接口函數的實現放在onBackPressed函數中以便於父Activity。

回答

2

你可以重寫你的活動onBackPressed這樣:

@Override 
public void onBackPressed() { 
    Fragment fragment = getFragmentManager().findFragmentById(R.id.fragment_name); 
    if (fragment instanceof YourFragment) { 
     YourFragment yourFragment = (YourFragment) fragment; 
     yourFragment.closeSelectMode(); 
    } else { 
     super.onBackPressed(); 
    } 
} 
+1

哇感謝!它很酷!但不是 片段fragment = getFragmentManager()。findFragmentById(R.id.fragment_name);我使用fragment = adapter.getItem(0); –