2016-09-17 6 views
-1

ナビゲーションとスライドの両方を含むアプリケーションを開発しています。しかし、ナビゲーションでは、リスナーをクリックして書き込む必要がある場所に移動できないため、ナビゲーション部分の項目をクリックすると応答します。 以下は私のコードです:ナビゲーションアイテムにOnClickListinerを設定する方法

private void init_navigator(){ 
     // Navigation Drawer 
     mDrawerLayout = (DrawerLayout) findViewById(R.id.main_activity_DrawerLayout); 
     mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.primaryDark)); 
     mScrimInsetsFrameLayout = (ScrimInsetsFrameLayout) findViewById(R.id.main_activity_navigation_drawer_rootLayout); 

     mActionBarDrawerToggle = new ActionBarDrawerToggle 
       (
         this, 
         mDrawerLayout, 
         toolbar, 
         R.string.navigation_drawer_opened, 
         R.string.navigation_drawer_closed 
       ) 

     { 
      @Override 
      public void onDrawerSlide(View drawerView, float slideOffset) 
      { 
       // Disables the burger/arrow animation by default 
       super.onDrawerSlide(drawerView, 0); 
      } 
     }; 


     mDrawerLayout.setDrawerListener(mActionBarDrawerToggle); 

     if (getSupportActionBar() != null) 
     { 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      getSupportActionBar().setDisplayShowHomeEnabled(true); 
      getSupportActionBar().setHomeButtonEnabled(true); 
     } 

     mActionBarDrawerToggle.syncState(); 

     // Navigation Drawer layout width 
     int possibleMinDrawerWidth = UtilsDevice.getScreenWidth(this) - 
       UtilsMiscellaneous.getThemeAttributeDimensionSize(this, android.R.attr.actionBarSize); 
     int maxDrawerWidth = getResources().getDimensionPixelSize(R.dimen.navigation_drawer_max_width); 

     mScrimInsetsFrameLayout.getLayoutParams().width = Math.min(possibleMinDrawerWidth, maxDrawerWidth); 
     // Set the first item as selected for the first time 
     getSupportActionBar().setTitle(R.string.toolbar_title_home); 


    } 
} 

答えて

0

NavigationView.OnNavigationItemSelectedListener 

が活動あなたのコードの一部の下にOnCreateの

navigationView.setNavigationItemSelectedListener(this); 

ハンドルでこれを追加アクティビティで、このインタフェースを実装し

@Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    switch(id){ 
    case R.id.settings: 
    break; 
} 
} 
0

ナビゲーションアイテムリストには何を使用していますか?Listview、recyclerview、または文字列配列を使用してアイテムラベルを表示していますか?ウル主な活動で

@Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    switch(id){ 
    case R.id.settings: 
    break; 
     } 
    } 
0

使用このコード

@Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
     // Handle navigation view item clicks here. 
     int id = item.getItemId(); 

     if (id == R.id.nav_camera) { 
      // Handle the camera action 
     } else if (id == R.id.nav_gallery) { 
      Intent intent = new Intent(this, proShearch.class); 
      startActivityForResult(intent,2); 

     } else if (id == R.id.nav_slideshow) { 

     } else if (id == R.id.nav_manage) { 

     } else if (id == R.id.nav_share) { 

     } else if (id == R.id.nav_send) { 

     } 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
     return true; 
    } 
0

あなたがあなたの活動

implements NavigationView.OnNavigationItemSelectedListener 
と一緒にこれを実装する必要があります。シンプルなアイテムを通して撮影し クリックためITEMLIST ため ポストコード

とこのようにClickListenerを配置

navigationView.setNavigationItemSelectedListener(this); 

この

@SuppressWarnings("StatementWithEmptyBody") 
    @Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
     // Handle navigation view item clicks here. 
     int id = item.getItemId(); 
    } 
のようにクリック扱います
関連する問題