2016-06-21 130 views
0

我有一个活动,我有Tablayout,并有两个标签命名为“交易”,“故事”当我导航到其他活动,并再次恢复到该活动 然后该选项卡出现,我以前看过,而我希望每当我恢复了该活动始终显示默认选项卡。如何我能做到这一点如何在恢复活动时显示默认选项卡?

代码: -

public void init() { 
    s_oCloginSession = new CLoginSessionManagement(CMainActivity.this);// object creation of Login Session... 
    setupToolbar();// setting toolbar 

    // navigation bar code 
    m_Drawer = (DrawerLayout) findViewById(R.id.drawer_layout);//finding id of drawerlayout 
    s_drawerToggle = new ActionBarDrawerToggle(
      this, m_Drawer, m_Toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    m_Drawer.setDrawerListener(s_drawerToggle); 
    m_Drawer.setScrimColor(getResources().getColor(android.R.color.transparent)); 
    s_drawerToggle.syncState(); 

    NavigationView m_Navigation = (NavigationView) findViewById(R.id.nav_view); 
    m_Navigation.setNavigationItemSelectedListener(this); 

    m_TabLayout = (TabLayout) findViewById(R.id.tab_layout);// finding Id of tablayout 
    m_TabLayout.addTab(m_TabLayout.newTab().setText("Deals"));// add deal listin tab 
    m_TabLayout.addTab(m_TabLayout.newTab().setText("Stories"));// add stories tab 
    m_TabLayout.setTabGravity(TabLayout.GRAVITY_FILL);// setting Gravity of Tab 

    m_ViewPager = (ViewPager) findViewById(R.id.pager);//finding Id of ViewPager 
    CDealMainListingPager m_oDealMainScreenPager = new CDealMainListingPager 
      (getSupportFragmentManager(), m_TabLayout.getTabCount()); 
    m_ViewPager.setAdapter(m_oDealMainScreenPager);// adiing adapter to ViewPager 
    m_ViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(m_TabLayout));// performing action of page changing 
    m_TabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      m_ViewPager.setCurrentItem(tab.getPosition()); 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 

} 
+0

你为什么不一个活动实现它,并从中 – MyWay

回答

2

您可以创建一个名为BaseActivity一类延伸AppCompatActivity。现在您的所有活动都将延伸至BaseActivity班,而不是AppCompatActivity。所以,只要你没有定义onBackPressed它会调用它的父类方法并执行它的操作。

public class BaseActivity extends AppCompatActivity { 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.translate, R.anim.left_to_right_simple); 
} 

} 

如果你想定制这个方法一类,那么只需要覆盖在相应的类此方法。对于其他类,它的工作原理与BaseActivity

中定义的相同。您的所有活动都是这样的。

public class HomeScreen extends BaseActivity{ 
    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    } 

} 
0

我觉得你以前的线程也将在后台工作,请取消它,当你不想更新。

+0

哪个线程在我的代码继承 – vishwas

1

使类,说CommonMethods并把方法成类:

public class CommonMethods extends AppCompatActivity { 

    /*This method functions when user press device back button*/ 
    @Override 
    public void onBackPressed() { 
     long currentTime = System.currentTimeMillis(); 

     if ((currentTime - lastPressTime) < 2000) { 
      // Double Press 
      moveTaskToBack(true); 
     } else { 
      Toast.makeText(this, "Press again to exit", Toast.LENGTH_SHORT).show(); 
      lastPressTime = currentTime; 
     } 
    } 
} 

在这里,你可以使这个类根据您的需求ActivityAppCompatActivity延伸。

最后,你可以制作需要这个功能的活动类,扩展这个CommonMethods类。

+0

感谢兄弟的作品..... – vishwas

1

您可以通过采取一个共同的类在它做到这一点,实现这个功能,

检查下面的代码,

以一个普通类方法

//Here I am taking it as common class you can take it as per your choice 

CommonClass。 java

public class CommonClass 
    { 
     public bool manageBackPressed(Activity activity, long lastPressTime) 
     { 
      long currentTime = System.currentTimeMillis(); 

      if ((currentTime - lastPressTime) < 2000) { 
        return true; 
      } else { 
        return false; 
      } 

      return false; 
     } 
    } 

现在下面检查onBackPressed方法的任何活动

@Override 
    public void onBackPressed() { 

     if(commonClass.manageBackPressed(this, lastPressTime)) 
      { 
       moveTaskToBack(true); 
      } 
      else 
      { 
       Toast.makeText(this, "Press again to exit", Toast.LENGTH_SHORT).show(); 
       lastPressTime = System.currentTimeMillis(); 
      } 
    } 
相关问题