2016-08-14 45 views
1

我自己试图开发基于this tutorial底部栏的示例安卓应用程序。安卓底部栏设置默认选项卡上创建的活动

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.thirdactivity); 

     BottomBar bottomBar = BottomBar.attach(this, savedInstanceState); 
     bottomBar.setItemsFromMenu(R.menu.bottom_menu, new OnMenuTabSelectedListener() { 
      @Override 
      public void onMenuItemSelected(int itemId) { 
       Intent myAct = new Intent(); 
      switch (itemId) { 
       case R.id.item1: 
        myAct = new Intent(findViewById(itemId).getContext(), mainactivity.class); 
        break; 
       case R.id.item2: 
        myAct = new Intent(findViewById(itemId).getContext(), secondactivity.class); 
        break; 
       case R.id.item3: 
        myAct = new Intent(findViewById(itemId).getContext(), thirdactivity.class); 
        break; 
      } 
       startActivity(myAct); 
      } 
     }); 
    } 

但是,我如何设置第三个选项卡作为默认oncreate活动。上面的代码突出显示了第一个选项卡为选中状态,并且在第一个选项卡上单击时没有收听。稍后的选项卡也会打开相应的活动,但不会将其作为当前选项卡高亮显示

编辑:我自己可以使用bottomBar.setDefaultTabPosition(desiredTabId);和它的工作,但它使用高内存。什么是修复?

回答

0

它是由具有作为startActivity()解决,

BottomBar bottomBar = BottomBar.attach(this, savedInstanceState); 

     bottomBar.setItemsFromMenu(R.menu.bottom_menu, new OnMenuTabSelectedListener() { 
       @Override 
       public void onMenuItemSelected(int itemId) { 
        Intent act = new Intent(); 
        if (R.id.item1 == itemId) { 
         act = new Intent(findViewById(itemId).getContext(), act1.class); 
         startActivity(act); 
         overridePendingTransition(R.anim.open_translate, R.anim.close_scale); 
        } 
        if (R.id.item2 == itemId) { 
         act = new Intent(findViewById(itemId).getContext(), act2.class); 
        } 
        if (R.id.item3 == itemId) { 
         act = new Intent(findViewById(itemId).getContext(), act3.class); 
         startActivity(act); 
         overridePendingTransition(R.anim.open_translate, R.anim.close_scale); 
        } 

       } 

      }); 
      bottomBar.setDefaultTabPosition(2); 

      bottomBar.setActiveTabColor("#F3C030");