Jump to content
Castiel

Problema ao criar um menu

Recommended Posts

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! :)

Edited by apocsantos
geshi Java [Code=java]

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Edited by Castiel

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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;		
 }

}
}

Edited by Castiel

Share this post


Link to post
Share on other sites
Castiel

Muda o public void para boolean.

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.