Jump to content

Recommended Posts

Posted (edited)

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]
Posted (edited)

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
Posted

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

Posted

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.

Posted (edited)

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.