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

Respuesta
 
Herramientas
  #1  
Viejo 04/06/14, 11:33:41
Array

[xs_avatar]
Napster87 Napster87 no está en línea
Miembro del foro
 
Fecha de registro: may 2013
Mensajes: 74
Tu operador: Movistar

Llamar un metodo desde otra clase

Debe ser sencillo,pero no acabo de hacerlo funcionar,y mire y mire en stackoverflow pero no encuentro la solucion.
Tengo dos activitys,una de ellas la uso para cargar un drawerlayout,dentro de un metodo desde esa clase tengo el codigo,y quiero llamar ese metodo desde otra activity,otra clase vaya.Os muestro el codigo a ver que os parece,porque solo me da force close y no me da pistas....

Código:
public class Restaurantes_Categorias  extends Activity{
	private Context context;
		@Override
		
		protected void onCreate(Bundle savedInstanceState) {
			super.onCreate(savedInstanceState);
			setContentView(R.layout.restaurantes_categorias);	
			
	             new Navigation_Create(context).Creacion();
	             
	            }
Código:
public class Navigation_Create extends Activity{
	private String[] titulos;
    private DrawerLayout NavDrawerLayout;
    private ListView NavList;
    private ArrayList<Items> NavItms;
    private TypedArray NavIcons;	
    NavigationAdapter NavAdapter;  
    private Context context;
    
    protected void onCreate(Bundle savedInstanceState) 
    {
    	
		super.onCreate(savedInstanceState);
    }
		
    public Navigation_Create(Context context)
    {
        this.context = context;
    }
    
    public void Creacion()
		{
	NavDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
	NavList = (ListView) findViewById(R.id.lista);
    View header = getLayoutInflater().inflate(R.layout.header, null);
    NavList.addHeaderView(header);
	NavIcons = getResources().obtainTypedArray(R.array.navigation_iconos);			
	titulos = getResources().getStringArray(R.array.nav_options);
    NavItms = new ArrayList<Items>();    
    NavItms.add(new Items(titulos[0], NavIcons.getResourceId(0, -1)));
    NavItms.add(new Items(titulos[1], NavIcons.getResourceId(1, -1)));
    NavItms.add(new Items(titulos[2], NavIcons.getResourceId(2, -1)));
    NavItms.add(new Items(titulos[3], NavIcons.getResourceId(3, -1)));
    NavItms.add(new Items(titulos[4], NavIcons.getResourceId(4, -1)));
    NavItms.add(new Items(titulos[5], NavIcons.getResourceId(5, -1)));     
    NavAdapter= new NavigationAdapter(this,NavItms);
    NavList.setAdapter(NavAdapter);	
    NavList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   		public void onItemClick(AdapterView<?> arg0,View arg1,int position,long id)
   		{
   			if(position==1)
   			{
   			//AbrirMonumentos();
   			}
   			if(position==2)
   			{
   			//AbrirAlojamientos();	
   			}
   			if(position==3)
   			{
   			//AbrirRestaurantes();
   			}
   		}
	});
El metodo a llamar es Creacion,pero nada...sugerencias?
Responder Con Cita


  #2  
Viejo 04/06/14, 16:03:57
Array

[xs_avatar]
oxot oxot no está en línea
Usuario muy activo
 
Fecha de registro: may 2010
Localización: Santiago
Mensajes: 741
Modelo de smartphone: Xiaomi RedRice
Tu operador: Pepephone
Mi opinón:
La otra activity no existe hasta que la creas supongo que con un intent así que no puedes llamar a un método de una clase que todavía no existe.
Si el método fuera estático es posible que pudieras llamarlo pero no creo que tenga sentido por lo que veo en tu código.
Realmente Navigation_Create tiene que ser una activity? no podría ser simplemente una clase? o no podrías reestruturarlo para que simplemente sea una subclase de Restaurantes_Categorias (si es que necesita ser una clase porque todo lo que veo es que crea las categorías y eso puede ser simplemente un método dentro de Restaurante_Categorias).
Sin ver más código no sé qué más decirte.

Seguro que más gente te dará más pistas que yo. Un saludo.

Última edición por oxot Día 04/06/14 a las 16:08:21.
Responder Con Cita
  #3  
Viejo 05/06/14, 08:44:23
Array

[xs_avatar]
Napster87 Napster87 no está en línea
Miembro del foro
 
Fecha de registro: may 2013
Mensajes: 74
Tu operador: Movistar

Como poder se puede,en un principio tenia todo el codigo en el mismo archivo,pero ando reescribiendo la parte del drawer layout una y otra vez,asi que estoy buscando la forma de pasarlo a un solo archivo y llamar desde el resto a este,menos codigo y mas ordenado...
Si no encuentro la solucion lo dejare asi,ya es por aprender algo nuevo vamos....

La idea es lo que dices,una clase "auxiliar" para llamarla desde las otras actividades.
Seguire investigando ,a ver si me dais ideas.

Gracias oxot!
Responder Con Cita
  #4  
Viejo 05/06/14, 09:55:12
Array

[xs_avatar]
oxot oxot no está en línea
Usuario muy activo
 
Fecha de registro: may 2010
Localización: Santiago
Mensajes: 741
Modelo de smartphone: Xiaomi RedRice
Tu operador: Pepephone
Es que entiendo que la estructura del layout de cada clase tiene que estar en su clase. Puedes crearlo como una subclase independiente o como un método dentro de la clase, pero ponerlo a parte no lo veo.
Ahora bien, si te entiendo bien, como este Drawer Layout es común para varias activities, pues yo lo que haría sería poner los métodos comunes en esta clase (que hereda de activity) y en tus clases, en vez de heredar de Activity, los haría heredar de esta clase Drawer_Layout_Actiivty. Así tendrías todos sus métodos disponibles en todos los que hereden de ella.

Algo parecido a lo que comentamos aquí:
http://www.htcmania.com/showpost.php...12&postcount=4

Un saludo
Responder Con Cita
  #5  
Viejo 09/06/14, 08:31:32
Array

[xs_avatar]
Napster87 Napster87 no está en línea
Miembro del foro
 
Fecha de registro: may 2013
Mensajes: 74
Tu operador: Movistar

Muchas gracias oxot!! Con lo que me has dicho entiendo mejor como hacerlo,voy a ello.
Responder Con Cita
Respuesta

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



Hora actual: 00:29:04 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /