Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 17/01/14, 12:32:02
Avatar de Manu14s
Manu14s Manu14s no está en línea
Usuario novato en la web
Mensajes: 15
 
Fecha de registro: oct 2013
Mensajes: 15
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Problema navigation drawer

Buenas el caso que he descargado el codigo de ejemplo de un curso de sgoliver sobre navigation drawer, y me crea
un error en el setOnItemClick:
Código:
public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {

				Fragment fragment = null;

				switch (position) {
					case 0:
						fragment = new Fragment1();------------>Aqui me da error a partir del =
						break;
					case 1:
						fragment = new Fragment2();------------>Aqui me da error a partir del =
						break;
					case 2:
						fragment = new Fragment3();------------>Aqui me da error a partir del =
						break;
				}

				FragmentManager fragmentManager = 
						getSupportFragmentManager();------------>Aqui me da error  :Type mismatch: cannot convert from android.support.v4.app.FragmentManager to android.app.FragmentManager

He importado todo, le he dado a clean, he cerrado eclipse,lo he vuelto a abrir...En libs esta android-support-v4.jar
Ya no se que mas hacer, a er si alguien puede ayudarme porque ya me estoy volviendo loco..
pego el codigo completo:

Código:
package net.sgoliver.android.navdrawer;

import android.app.Fragment;
import android.app.FragmentManager;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
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 ActionBarActivity {
	
	private String[] opcionesMenu;
    private DrawerLayout drawerLayout;
    private ListView drawerList;
    private ActionBarDrawerToggle drawerToggle;
    
    private CharSequence tituloSeccion;  
    private CharSequence tituloApp;  

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		opcionesMenu = new String[] {"Opción 1", "Opción 2", "Opción 3"};
        drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawerList = (ListView) findViewById(R.id.left_drawer);

        drawerList.setAdapter(new ArrayAdapter<String>(
        		getSupportActionBar().getThemedContext(),
                android.R.layout.simple_list_item_1, opcionesMenu));
        
		drawerList.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {

				Fragment fragment = null;

				switch (position) {
					case 0:
						fragment = new Fragment1();
						break;
					case 1:
						fragment = new Fragment2();
						break;
					case 2:
						fragment = new Fragment3();
						break;
				}

				FragmentManager fragmentManager = 
						getSupportFragmentManager();
				
				fragmentManager.beginTransaction()
						.replace(R.id.content_frame, fragment)
						.commit();

				drawerList.setItemChecked(position, true);

				tituloSeccion = opcionesMenu[position];
				getSupportActionBar().setTitle(tituloSeccion);

				drawerLayout.closeDrawer(drawerList);
			}
		});
		
		tituloSeccion = getTitle();
		tituloApp = getTitle();
		
		drawerToggle = new ActionBarDrawerToggle(this, 
				drawerLayout,
				R.drawable.ic_navigation_drawer, 
				R.string.drawer_open,
				R.string.drawer_close) {

			public void onDrawerClosed(View view) {
				getSupportActionBar().setTitle(tituloSeccion);
				ActivityCompat.invalidateOptionsMenu(MainActivity.this);
			}

			public void onDrawerOpened(View drawerView) {
				getSupportActionBar().setTitle(tituloApp);
				ActivityCompat.invalidateOptionsMenu(MainActivity.this);
			}
		};

		drawerLayout.setDrawerListener(drawerToggle);
		
		getSupportActionBar().setDisplayHomeAsUpEnabled(true);
		getSupportActionBar().setHomeButtonEnabled(true);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		
		if (drawerToggle.onOptionsItemSelected(item)) {
			return true;
		}
		
		switch(item.getItemId())
		{
			case R.id.action_settings:
				Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show();;
				break;
			case R.id.action_search:
				Toast.makeText(this, "Search", Toast.LENGTH_SHORT).show();
				break;
			default:
				return super.onOptionsItemSelected(item);
		}
		
		return true;
	}
	
	@Override
	public boolean onPrepareOptionsMenu(Menu menu) {

		boolean menuAbierto = drawerLayout.isDrawerOpen(drawerList);
		
		if(menuAbierto)
			menu.findItem(R.id.action_search).setVisible(false);
		else
			menu.findItem(R.id.action_search).setVisible(true);
		
		return super.onPrepareOptionsMenu(menu);
	}
	
	@Override
	protected void onPostCreate(Bundle savedInstanceState) {
		super.onPostCreate(savedInstanceState);
		drawerToggle.syncState();
	}

	@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);
		drawerToggle.onConfigurationChanged(newConfig);
	}
}

GRACIAS !!!!
Responder Con Cita


  #2  
Viejo 17/01/14, 12:52:40
Avatar de Manu14s
Manu14s Manu14s no está en línea
Usuario novato en la web
Mensajes: 15
 
Fecha de registro: oct 2013
Mensajes: 15
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Ya esta! lo dejo por si a alguien le hiciera falta.

Código:
@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {

				android.support.v4.app.Fragment fragment = null; ---->Añadido

				switch (position) {
					case 0:
						fragment = new Fragment1();
						break;
					case 1:
						fragment = new Fragment2();
						break;
					case 2:
						fragment = new Fragment3();
						break;
				}

				android.support.v4.app.FragmentManager fragmentManager = -->añadido
						getSupportFragmentManager();
				
				fragmentManager.beginTransaction()
						.replace(R.id.content_frame, fragment)
						.commit();

				drawerList.setItemChecked(position, true);

				tituloSeccion = opcionesMenu[position];
				getSupportActionBar().setTitle(tituloSeccion);

				drawerLayout.closeDrawer(drawerList);
			}
		});
Responder Con Cita
  #3  
Viejo 17/01/14, 14:43:28
Avatar de sgolivernet
sgolivernet sgolivernet no está en línea
Usuario poco activo
Mensajes: 33
 
Fecha de registro: ago 2010
Mensajes: 33
Modelo de smartphone: HTC Desire
Mencionado: 2 comentarios
Tagged: 0 hilos
Hola Manu,

debes haber tenido algún problemilla al importar el código, porque si miras el código de mi ejemplo en GitHub verás que los import que hace son:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;

y no los que indicas en tu código:

import android.app.Fragment;
import android.app.FragmentManager;

Saludos.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 14:22:58 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007