2017-04-04 20 views
-2

R.id.nav_galleryを選択したときと同じように、ナビゲーションバーの項目が選択されているときにフラグメントを処理できません。 onNavigationItemSelected(MenuItemアイテム)のどこかに問題があると思いますが、ローカライズできませんでした。何かご意見は?なぜあなたはのnewInstanceを作成しているフラグメントを交換した後フラグメントが選択されたナビゲーションバーに表示されませんか?

public class MainActivity extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    (...) 

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





public static class PlaceholderFragment extends Fragment{ 

    private static final String ARG_SECTION_NUMBER = "section_number"; 

    public PlaceholderFragment() { 
    } 

    public static PlaceholderFragment newInstance() { 
     PlaceholderFragment fragment = new PlaceholderFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_SECTION_NUMBER, 0); 
     fragment.setArguments(args); 
     Log.d("frag", "6"); 
     return fragment; 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
     return rootView; 
    } 
} 

@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    FragmentManager fragmentManager = getFragmentManager(); 
    PlaceholderFragment fragment; 

    if (id == R.id.nav_camera) { 
     // Handle the camera action 
    } else if (id == R.id.nav_gallery) { 
     fragment = new PlaceholderFragment(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.container, fragment) 
       .commit(); 
     PlaceholderFragment.newInstance(); 
    } 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 
} 
+1

? –

答えて

0
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    FragmentManager fragmentManager = getFragmentManager(); 
    PlaceholderFragment fragment; 

    if (id == R.id.nav_camera) { 
     // Handle the camera action 
    } else if (id == R.id.nav_gallery) { 
     fragment = new PlaceholderFragment(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.container, fragment) 
       .commit(); 
    } 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 
} 
関連する問題