-1
탐색 항목을 클릭하면 조각을 변경할 수 없습니다. 내 단편 2 번에서만 발생합니다. 커밋으로 인해 오류가 발생하고 앱이 닫힙니다. 제발, 누군가 나를 도울 수 있니? 오류는 어디에 있습니까?탐색 창으로 조각 변경 오류
주요 CODE
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inicio_admin);
// Implementação do navigation view
DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
toggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.open, R.string.close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
NavigationView navigationView = (NavigationView) findViewById(R.id.navigationView);
navigationView.setNavigationItemSelectedListener(this);
if(savedInstanceState == null) {
FragmentOne frag1 = new FragmentOne();
FragmentTwo frag2 = new FragmentTwo();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.layoutFundo, frag1, "frag1");
ft.commit();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(toggle.onOptionsItemSelected(item))
return true;
return super.onOptionsItemSelected(item);
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
FragmentOne frag1 = new FragmentOne();
FragmentTwo frag2 = new FragmentTwo();
FragmentTransaction ft = fm.beginTransaction();
if (item.getItemId() == R.id.nav_menu_1) {
ft.replace(R.id.layoutFundo, frag1, "frag1");
ft.addToBackStack("pilha");
showMessage("IF", "Entrou no if");
Toast.makeText(InicioAdmin.this, "Novo", Toast.LENGTH_SHORT).show();
} else if (item.getItemId() == R.id.nav_menu_2) {
ft.replace(R.id.layoutFundo, frag2, "frag2");
ft.addToBackStack("pilha");
showMessage("ELSEIF", "Entrou no Elseif");
Toast.makeText(InicioAdmin.this, "Outro", Toast.LENGTH_SHORT).show();
} else {
ft.replace(R.id.layoutFundo, frag1, "frag1");
ft.addToBackStack("pilha");
showMessage("ELSE", "Entrou no else");
}
ft.commit();
/* switch (item.getItemId()) {
case R.id.nav_menu_1:
break;
case R.id.nav_menu_2:
break;
default:
break;
}*/
DrawerLayout dl = (DrawerLayout) findViewById(R.id.drawerLayout);
if (dl.isDrawerOpen(GravityCompat.START))
dl.closeDrawer(GravityCompat.START);
return false;
}
// Método showMessage
public void showMessage (String title, String message)
{
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.show();
}
FRAGMENT 하나의 코드
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.fragment_one, null);
TextView tv = (TextView) view.findViewById(R.id.textView1);
tv.setText("Fragmento 1");
return (view);
}
FRAGMENT 두 개의 코드
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
/*
View view = inflater.inflate(R.layout.fragment_two, null);
TextView tv = (TextView) view.findViewById(R.id.textView1);
tv.setText("Fragmento 2");
*/
return (null);
}
두 클래스는 당신이 내가 널 반환 생각 조각
onCreateView()에서'null '을 반환 할 수 없습니다. –