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 24/11/13, 16:57:25
Array

[xs_avatar]
EPDPF EPDPF no está en línea
Miembro del foro
 
Fecha de registro: sep 2013
Mensajes: 418
Modelo de smartphone: ONE E1003
Tu operador: Amena
Pestañas dentro de pestañas (Tabs dentro de Tabs)

Buenas tardes, estoy desarrollando una aplicación, en la cual al iniciar una actividad aparen unas pestañas (Tabs), dependiendo de la pestaña que se pulse abajo se inicia la actividad asociada a dicha pestaña. Lo que quiero hacer es que la actividad que se inicia tenga también pestañas (Tabs). Os dejo aquí el código que estoy usando, pero me da error, ya que por lo que veo se están inician 2 activities a la vez y es lo que me da error.

Actividad Principal

Código:
package es.apli.cincocopas;


import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;

import android.widget.TextView;
/*PANTALLA DE BIENVENIDA*/
public class Admin extends TabActivity  {
	String user;
	TextView txt_usr;
	
		
	 public void onCreate(Bundle savedInstanceState) {
		 
	       super.onCreate(savedInstanceState);
	       setContentView(R.layout.admin);
	       	       	
	        txt_usr= (TextView) findViewById(R.id.usr_name);
            
            Bundle extras = getIntent().getExtras();
            //Obtenemos datos enviados en el intent.
            if (extras != null) {
         	   user  = extras.getString("user");//usuario
            }else{
         	   user="error";
         	   }
            
            
           txt_usr.setText("Bienvenido administrador " + user);//cambiamos texto al nombre del usuario logueado   
           
        Resources res = getResources();
       	 
       	TabHost tabs=(TabHost)findViewById(android.R.id.tabhost);
       	
       	tabs.setup();
       	         	 
       	tabs.addTab(tabs.newTabSpec("mitabAdmin").setIndicator(null,res.getDrawable(R.drawable.botonadmin)).setContent(new Intent(this, OpAdmin.class)));
       	tabs.addTab(tabs.newTabSpec("mitabHisto").setIndicator(null,res.getDrawable(R.drawable.botonhistoria)).setContent(new Intent(this, Historia.class))); 
       	tabs.addTab(tabs.newTabSpec("mitabConta").setIndicator(null,res.getDrawable(R.drawable.botonsaldo)).setContent(new Intent(this, Conta.class)));       	  
       	tabs.addTab(tabs.newTabSpec("mitabNoti").setIndicator(null,res.getDrawable(R.drawable.btnnoticias)).setContent(new Intent(this, Noti.class))); 
    	       	       	
       	tabs.setCurrentTab(0);
       	tabs.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.tab_selector);
       	tabs.getTabWidget().getChildAt(1).setBackgroundResource(R.drawable.tab_selector); 
       	tabs.getTabWidget().getChildAt(2).setBackgroundResource(R.drawable.tab_selector); 
    	tabs.getTabWidget().getChildAt(3).setBackgroundResource(R.drawable.tab_selector); 
       	tabs.getTabWidget().setStripEnabled(true);
       	tabs.getTabWidget().setRightStripDrawable(R.drawable.tab_selector); 
       	tabs.getTabWidget().setLeftStripDrawable(R.drawable.tab_selector);


       	 tabs.setOnTabChangedListener(new OnTabChangeListener() {
  		    @Override
  		    public void onTabChanged(String tabId) {
  		        Log.i("AndroidTabsDemo", "Pulsada pestaña: " + tabId);
  		    }
  		});
       
	 }	
	 
}
OpAdmin.class

Código:
package es.apli.cincocopas;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
 
public class OpAdmin extends TabActivity {
	
 
	 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.opadmin);
        
        Resources res = getResources();
      	 
       	TabHost tabs=(TabHost)findViewById(android.R.id.tabhost);     	
       	tabs.setup();
       	         	 
       	
       	tabs.addTab(tabs.newTabSpec("mitabConta").setIndicator(null,res.getDrawable(R.drawable.botonsaldo)).setContent(new Intent(this, Conta.class)));       	  
       	tabs.addTab(tabs.newTabSpec("mitabNoti").setIndicator(null,res.getDrawable(R.drawable.btnnoticias)).setContent(new Intent(this, Noti.class))); 
      	       	
       	tabs.setCurrentTab(0);
       	tabs.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.tab_selector);
       	tabs.getTabWidget().getChildAt(1).setBackgroundResource(R.drawable.tab_selector);  
       	tabs.getTabWidget().setStripEnabled(true);
       	tabs.getTabWidget().setRightStripDrawable(R.drawable.tab_selector); 
       	tabs.getTabWidget().setLeftStripDrawable(R.drawable.tab_selector);


       	 tabs.setOnTabChangedListener(new OnTabChangeListener() {
  		    @Override
  		    public void onTabChanged(String tabId) {
  		        Log.i("AndroidTabsDemo", "Pulsada pestaña: " + tabId);
  		    }
  		});
       
	 }
El error que me aparece es el siguiente:

java.lang.RuntimeException: Unable to start activity ComponentInfo{es.apli.cincocopas/es.apli.cincocopas.Admin}: java.lang.RuntimeException: Unable to start activity ComponentInfo{es.apli.cincocopas/es.apli.cincocopas.OpAdmin}: java.lang.RuntimeException: Your content must have a TabHost whose id attribute is 'android.R.id.tabhost'

Pero en el layout opadmin.xml, que es donde me da el error tengo una TabHost con el atributo android.R.id.tabhost.

¿Es posible tener pestañas dentro de pestañas, o lo que intento hacer no se puede hacer?

La única pestaña que me da error es la de "mitabAdmin", las demás funcionan perfectamente.
Responder Con Cita


Respuesta

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



Hora actual: 06:35:33 (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 / 邮件联系 /