SO私は私がナビゲーション引き出して断片を開くことが許可され、このコードを持っていたが、それは活動を開くことができません。同じ機能(引き出しレイアウト付き)でフラグメントとアクティビティを開く方法は?
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
Fragment fragment = null;
Class fragmentClass = null;
if (id == R.id.nav_home) {
Intent homeIntent = new Intent(this, MainActivity.class);
startActivity(homeIntent); //Doesn't Work
} else if (id == R.id.nav_contacts) {
fragmentClass = Contactos.class; //Works
} else if (id == R.id.nav_about) {
fragmentClass = Sobre.class; /Works
} else if (id == R.id.nav_settings){
Intent settingIntent = new Intent(this, SettingsActivity.class); //Doesn't Work
startActivity(settingIntent);
}
try {
fragment = (Fragment) fragmentClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();
DrawerLayout drawer = (DrawerLayout) findViewById(drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
だから私はいくつかの他のソリューションのためのWebを検索し、この新しいものと私は活動を開くことができますが、断片を開くことはできません:|
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
Fragment fragment = null;
Class fragmentClass = null;
switch (id) {
case R.id.nav_home:
Intent homeIntent = new Intent(this, MainActivity.class); //Works
startActivity(homeIntent);
break;
case R.id.nav_contacts:
fragmentClass = Contactos.class; //Doesn't Work
break;
case R.id.nav_about:
fragmentClass = Sobre.class; //Doesn't Work
break;
case R.id.nav_settings:
Intent settingsIntent = new Intent(this, SettingsActivity.class); //Works
startActivity(settingsIntent);
break;
}
return false;
}
どうすれば両方開くことができますか? 助けを歓迎します:
私の答えを確認してください。 – tahsinRupam