Castiel Posted December 24, 2012 at 01:06 PM Report #488256 Posted December 24, 2012 at 01:06 PM (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 December 24, 2012 at 01:53 PM by apocsantos geshi Java [Code=java]
NunoDinis Posted December 24, 2012 at 01:23 PM Report #488258 Posted December 24, 2012 at 01:23 PM 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
Castiel Posted December 24, 2012 at 03:22 PM Author Report #488273 Posted December 24, 2012 at 03:22 PM (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 December 24, 2012 at 03:24 PM by Castiel
NunoDinis Posted December 24, 2012 at 03:43 PM Report #488279 Posted December 24, 2012 at 03:43 PM 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
Castiel Posted December 24, 2012 at 04:04 PM Author Report #488281 Posted December 24, 2012 at 04:04 PM 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.
NunoDinis Posted December 24, 2012 at 04:29 PM Report #488286 Posted December 24, 2012 at 04:29 PM Adiciona return (true); depois do startActivity(i); Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
Castiel Posted December 24, 2012 at 04:59 PM Author Report #488291 Posted December 24, 2012 at 04:59 PM (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 December 24, 2012 at 05:04 PM by Castiel
NunoDinis Posted December 24, 2012 at 05:20 PM Report #488296 Posted December 24, 2012 at 05:20 PM Muda o public void para boolean. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
Castiel Posted December 24, 2012 at 06:22 PM Author Report #488308 Posted December 24, 2012 at 06:22 PM Muda o public void para boolean. Se eu mudar, aparece este erro: "The return type is incompatible with View.onclickListener.onclick(View)"
NunoDinis Posted December 24, 2012 at 06:24 PM Report #488310 Posted December 24, 2012 at 06:24 PM 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
Castiel Posted December 24, 2012 at 06:30 PM Author Report #488312 Posted December 24, 2012 at 06:30 PM 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!
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now