Application crashes when using FragmentManager
I'm new at adroid, and right now I'm trying to create an Navigation
drawer. Everything goes well until I try to link then to fragments, when I
do that and try to run at AVD or my HTC it crashes.
Here's the code:
{ package com.medicocontableV1.medicocontable;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v4.app.FragmentActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends FragmentActivity {
private DrawerLayout drawerLayout;
private ListView drawer;
private ActionBarDrawerToggle toggle;
private static final String[] opciones = {"Inicio","Sobre los
pacientes", "Usuarios", "Multimedia", "Administrador","Módulo
Contable"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Rescatamos el Action Bar y activamos el boton Home
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
// Declarar e inicializar componentes para el Navigation Drawer
drawer = (ListView) findViewById(R.id.drawer);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
// Declarar adapter y eventos al hacer click
drawer.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1,
opciones));
drawer.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//Toast.makeText(MainActivity.this, "Pulsado: " +
opciones[position], Toast.LENGTH_SHORT).show();
FragmentManager fragmentManager =
getSupportFragmentManager();
switch (position) {
case 1:
fragmentManager.beginTransaction().replace(R.id.texto,
new Fragment1()).commit();
break;
}
drawer.setItemChecked(position, true);
drawerLayout.closeDrawers();
}
});
// Sombra del panel Navigation Drawer
drawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
GravityCompat.START);
// Integracion boton oficial
toggle = new ActionBarDrawerToggle(
this, // Activity
drawerLayout, // Panel del Navigation Drawer
R.drawable.ic_drawer, // Icono que va a utilizar
R.string.app_name, // Descripcion al abrir el drawer
R.string.hello_world // Descripcion al cerrar el drawer
){
public void onDrawerClosed(View view) {
// Drawer cerrado
getActionBar().setTitle(getResources().getString(R.string.app_name));
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
// Drawer abierto
getActionBar().setTitle("Meú");
invalidateOptionsMenu();
}
};
drawerLayout.setDrawerListener(toggle);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (toggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
// Activamos el toggle con el icono
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
toggle.syncState();
}
}
}
and it crashes in this line:
fragmentManager.beginTransaction().replace(R.id.texto, new
Fragment1()).commit(); break;
I hope you guys can help me
No comments:
Post a Comment