2017-05-21 114 views
0

我正在嘗試製作一個導航抽屜,當用戶點擊項目時會打開一個新活動。在導航抽屜項目上開始新活動點擊

我的抽屜裏有5件物品,我希望他們每個人都打開不同的活動。

我不知道該怎麼做?

我的代碼如下

public class TabView extends AppCompatActivity { 

    private Toolbar toolbar; 
    private TabLayout tabLayout; 
    private ViewPager viewPager; 

    private DrawerLayout mDrawerLayout; 
    private ActionBarDrawerToggle mToggle; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.tab_view); 

     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     viewPager = (ViewPager) findViewById(R.id.viewpager); 
     setupViewPager(viewPager); 

     tabLayout = (TabLayout) findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(viewPager); 

     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
     mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close); 

     mDrawerLayout.addDrawerListener(mToggle); 
     mToggle.syncState(); 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (mToggle.onOptionsItemSelected(item)){ 

     } 
     return true; 
    } 

    private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFragment(new OneFragment(), "Charts"); 
     adapter.addFragment(new TwoFragment(), "Weather"); 
     adapter.addFragment(new ThreeFragment(), "Checklists"); 
     viewPager.setAdapter(adapter); 
    } 

    class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     public void addFragment(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 

回答

0

這裏是一個很好example

public class MainActivity extends Activity { 
    private String[] mPlanetTitles; 
    private DrawerLayout mDrawerLayout; 
    private ListView mDrawerList; 
    ... 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mPlanetTitles = getResources().getStringArray(R.array.planets_array); 
     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mDrawerList = (ListView) findViewById(R.id.left_drawer); 

     // Set the adapter for the list view 
     mDrawerList.setAdapter(new ArrayAdapter<String>(this, 
       R.layout.drawer_list_item, mPlanetTitles)); 
     // Set the list's click listener 
     mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); 

     ... 
    } 
} 
private class DrawerItemClickListener implements ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     selectItem(position); 
    } 
} 
private void selectItem(int position) { 
    //menu items position as it appears in listview 
    Switch(position){ 
     case 0 : 
      Intent i = new Intent(MainActivity.this, ActivityTwo.class); 
      startActivity(i); 
      break; 
     case 1 : 
      Intent i = new Intent(MainActivity.this, ActivityThree.class); 
      startActivity(i); 
      break; 
     //more case for you menu item 
     default : 
      //start default activity here 
      break; 
    } 
} 
+0

即時得到錯誤 –

+1

「開關外Case語句」你可能錯過了一些東西,結賬語法[這裏]( https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html),plz分享你的代碼,你得到這個錯誤。 – Fahadsk

+0

是的一切似乎罰款@法塔克。這是我得到錯誤的代碼 –