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 24/11/13, 16:57:25
Avatar de EPDPF
EPDPF EPDPF no está en línea
Miembro del foro
Mensajes: 418
 
Fecha de registro: sep 2013
Mensajes: 418
Modelo de smartphone: ONE E1003
Versión de ROM: OxygenOS 2.2.0-X
Tu operador: Amena
Mencionado: 1 comentarios
Tagged: 0 hilos
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   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: 08:14:20 (GMT +2)

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