Ir para o conteúdo
Castiel

Problema ao criar um menu

Mensagens Recomendadas

Castiel

Boa Tarde!

Tenho um pequeno problema no projecto que estou a desenvolver para android. O problema é o seguinte:

Fiz uma layout com tabs, e fiz o seguinte código java:

public class Disciplinas extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.novo_menu);

 TabHost tabHost = getTabHost();


 TabSpec photospec = tabHost.newTabSpec("Fotos");

 photospec.setIndicator("Fotos");
 Intent photosIntent = new Intent(this, Disciplinas2.class);
 photospec.setContent(photosIntent);

 TabSpec songspec = tabHost.newTabSpec("Musicas");
 songspec.setIndicator("Musicas");
 Intent songsIntent = new Intent(this, Matematica.class);
 songspec.setContent(songsIntent);

 tabHost.addTab(photospec);
 tabHost.addTab(songspec);

}
}

Como podem ver no código, a 1º tab contem elementos da calsse "Disciplinas2" que esta ligada a uma layout que apresenta 7 botões.

Para por os botões em acção fiz uma outra classe. Aqui esta o código:

protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.disciplinas);
btnfisica = (Button)findViewById(R.id.btnfisica);
btnmat = (Button)findViewById(R.id.btnmat);
btnbio = (Button)findViewById(R.id.btnbio);
btnfilo = (Button)findViewById(R.id.btnfilo);
btningles = (Button)findViewById(R.id.btningles);
btnpt = (Button)findViewById(R.id.btnpt);
btnefisica = (Button)findViewById(R.id.btnefisica);
}
@Override
public void onclick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()){
case R.id.btnfisica:

	 Intent i = new Intent(this, fisica.class);
	 startActivity(i);

break;
 case R.id.btnmat:

break;
 case R.id.btnbio:

	 break;
 case R.id.btnfilo:

	 break;
 case R.id.btningles:

	 break;
 case R.id.btnpt:

	 break;
 case R.id.btnefisica:

	 break;

}

O código não apresenta nenhum erro, mas quando eu rodo a aplicação no telemóvel, e quando carrego no botão "btnfisica" era suposto abrir a classe chamada "fisica" e apresentar me a layout "fisico_quimica". Mas tal não acontece.... Estou a fazer alguma coisa mal?

Obrigado pela atenção! :)

Editado por apocsantos
geshi Java [Code=java]

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Põe a tag JAVA sff, para que possamos perceber melhor o código.

Estás a chamar a classe pretendida no android manifest ?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Castiel

Põe a tag JAVA sff, para que possamos perceber melhor o código.

Estás a chamar a classe pretendida no android manifest ?

Sim...

aqui esta:

<activity
 android:name=".Fisico_Quimica"
 android:screenOrientation="portrait"
 android:label="Fisico-Quimica" >		
</activity>

Eu meti em sima que a classe chamava-se fisica.class, mas é Fisico_Quimica.class

Editado por Castiel

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Verifica se a aplicação está a entrar neste case :

case R.id.btnfisica:
Intent i = new Intent(this, fisica.class);
startActivity(i);

Põe uma mensagem ou um log qualquer, e diz-me o que retornou..

Faz também outro teste, e coloca este código, para verificarmos se vai abrir a atividade.

btnFisica.setonclickListener(new View.onclickListener() {
  public void onclick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ATUAATIVIDADE.this, fisica.class);
startActivity(intent);
  }
 });


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Castiel

Verifica se a aplicação está a entrar neste case :

case R.id.btnfisica:
Intent i = new Intent(this, fisica.class);
startActivity(i);

Põe uma mensagem ou um log qualquer, e diz-me o que retornou..

Faz também outro teste, e coloca este código, para verificarmos se vai abrir a atividade.

btnFisica.setonclickListener(new View.onclickListener() {
  public void onclick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ATUAATIVIDADE.this, fisica.class);
startActivity(intent);
  }
 });

Sim quando meti o botão separado do switch, ele consegui abrir a actividade.

Dentro do switch eu meti o try catch, mas ele nao me deu nenhum erro, mas também não abriu a actividade.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Castiel

Adiciona return (true); depois do startActivity(i);

o return true fica a vermelho :( erro: "Void methods cannot return a value"

@Override
public void onclick(View arg0) {
 // TODO Auto-generated method stub
 switch (arg0.getId()){
 case R.id.btnfisica:
  Intent i = new Intent(this, Fisico_Quimica.class);
	 startActivity(i);
	 return true;

  break;
    case R.id.btnmat:

  break;
    case R.id.btnbio:

	 break;
    case R.id.btnfilo:

	 break;
    case R.id.btningles:

	 break;
    case R.id.btnpt:

	 break;
    case R.id.btnefisica:

	 break;		
 }

}
}

Editado por Castiel

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Castiel

Muda o public void para boolean.

Se eu mudar, aparece este erro: "The return type is incompatible with View.onclickListener.onclick(View)"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Para não ficares empancado, tenta fazer sem o switch, da forma que te propus.

Agora não dá, Natal é Natal :)


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Castiel

Para não ficares empancado, tenta fazer sem o switch, da forma que te propus.

Agora não dá, Natal é Natal :)

Ok, Obrigado pela ajuda :)

Feliz Natal!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.