Saltar para conteúdo


Foto
- - - - -

Ajuda no Codigo


  • Por favor inicie sessão para responder
18 respostas a este tópico

#1 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 06 March 2011 - 00:08

Estou a tentar fazer a minha primeira app para android e escrevi o codigo mas a app mesmo passando nos testes do eclipse no telemovel faz logo force close.Basicamente o que eu quero é ter um botão que quando pressionado aumenta o valor e o vai escrevendo no ecrã.Alguem me pode ajudar??Codigo:
package com.rodrigo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class Contador_IAED extends Activity {    /** Called when the activity is first created. */	int count;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button startButton = (Button) findViewById(R.id.trigger);    startButton.setOnClickListener(new View.OnClickListener() {    	public void onClick(View view) {     		++count;    		}    	    });    TextView tv = (TextView) findViewById(R.id.hello_text);    tv.setText(count);}}


#2 FernandoMiguel

FernandoMiguel

    Mestre de Android

  • Former Staff
  • PipPipPipPipPipPip
  • 9430 mensagens

Mensagem publicada 06 March 2011 - 00:09

(movido para programaçao)

#3 fabrantes

fabrantes

    Membro

  • Membros
  • PipPip
  • 32 mensagens

Mensagem publicada 06 March 2011 - 00:16

Se puseres o resultado do logcat ajuda a perceber qual é o erro ao certo, assim à primeira não estou a ver o que seja (declaraste a activity no AndroidManifest,xml?)De qlq modo o código precisa de uns ligeiros toques para fazer aquilo que queres:
package com.rodrigo; import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView; public class Contador_IAED extends Activity {    /** Called when the activity is first created. */	int count = 0;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);     	Button startButton = (Button) findViewById(R.id.trigger);	startButton.setOnClickListener(new View.OnClickListener() {    		public void onClick(View view) {     			++count;			TextView tv = (TextView) findViewById(R.id.hello_text);			tv.setText(String.valueOf(count)); // aqui o count sozinho tb é capaz de funkar    		}    	});	TextView tv = (TextView) findViewById(R.id.hello_text);	tv.setText(String.valueOf(count)); // aqui o count sozinho tb é capaz de funkar     }}


#4 fabrantes

fabrantes

    Membro

  • Membros
  • PipPip
  • 32 mensagens

Mensagem publicada 06 March 2011 - 00:20

Uma possibilidade é a TextView não ter sido declarada com o id certo.(Nota: no xml da tua textview tens de por android:id="@+id/hello_text")

#5 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 06 March 2011 - 19:58

a textview ta bem, mas no manifest não mexi, o k devo alterar la?o k sugeres ali no codigo e por apenas o count onde indicas?

#6 pedronveloso

pedronveloso

    Veloso

  • Administradores
  • 1578 mensagens
  • S8

Mensagem publicada 06 March 2011 - 20:06

No manifest tens de declarar a Activity, senão ao iniciar essa Activity a app fará Force Close.

#7 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 06 March 2011 - 20:19

podes explicar-me ao certo como faço isso e que não sei como.se puderes escrever o que devo por la pa eu perceber agradecia..

#8 AndréD.

AndréD.

    Membro

  • Membros
  • PipPip
  • 69 mensagens

Mensagem publicada 06 March 2011 - 20:42

Boas...EU penso que o que ele esta a dizer para fazeres é o seguinte, abres o ficheiro AndoirdManifest.xml e depois vais ao separador "Application" depois onde tens "Application Nodes" tens de adicionar ai a tua activity. Depois nos atributos da tua activity no nome fazes browse e escolhes o nome da tua activity.(Desculpa la a repetição da palavra activity...)Espero ter ajudado (Tambem sou novo em programação para android)CumpsAndréD.

#9 pedronveloso

pedronveloso

    Veloso

  • Administradores
  • 1578 mensagens
  • S8

Mensagem publicada 06 March 2011 - 20:44

Lê esta página: http://developer.and...tivities.htmlem particular na secção de nome "Declaring the activity in the manifest"

#10 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 06 March 2011 - 20:53

acho que ja estava declarada...
<application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".Contador_IAED"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity android:name="Contador_IAED"></activity>    </application>


#11 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 06 March 2011 - 21:17

mas continua a não funcionar...

#12 pedronveloso

pedronveloso

    Veloso

  • Administradores
  • 1578 mensagens
  • S8

Mensagem publicada 06 March 2011 - 21:31

Tens de colar aqui o erro, senão fica difícil nós sabermos. No eclipse tens lá o output do logcat, e algures lá deverá aparecer o erro bem explicito do que correu mal.

#13 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 06 March 2011 - 23:01

andei aki às voltas e ja não da erro, mas agora não me mostra nem actualiza o tal valor que eu quero incrementar..como devo proceder?

#14 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 06 March 2011 - 23:44

Ja consegui graças às correcções do AndréD...muitissimo obrigado.

#15 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 07 March 2011 - 10:41

Mais uma dúvida:quando eu quero guardar um valor nuerico na memoria interna do aparelho como devo proceder?Estive a procurar e encontrei algo parecido com isto que alterei para mim:
String FILENAME = "contador_memoria";Integer intn = countn;FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);fos.write(intn.getBytes());fos.close();
O que eu quero gravar são valores numericos e não strings, mas o programa está a dizer-me que o getBytes() não esta definido para inteiros o que devo fazer?E esta a dar-me outro erro:Cannot refer to a non-final variable inside an inner....o que será?aqui fica todo o codigo:
package com.cookbook.simple_activity;import java.io.FileOutputStream;import com.cookbook.simple_activity.R.string;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class SimpleActivity extends Activity {    int countn=0;    int countt=0;    int counto=0;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                  String FILENAME = "count_file";        FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);        //Integer intt = countt;        //Integer into = counto;                        //Contador Não é?        Button startButton = (Button) findViewById(R.id.triggern);    	startButton.setOnClickListener(new View.OnClickListener() {        		public void onClick(View view) {         			++countn;    			TextView tvn = (TextView) findViewById(R.id.naoe);    			tvn.setText(String.valueOf(countn));    			    			Integer intn = countn;    			fos.write(intn.getBytes());    	        fos.close();        		}        	});    	//Contador Tá Bem    	Button startButtont = (Button) findViewById(R.id.triggert);    	startButtont.setOnClickListener(new View.OnClickListener() {        		public void onClick(View view) {         			++countt;    			TextView tvt = (TextView) findViewById(R.id.tabem);    			tvt.setText(String.valueOf(countt));        		}        	});    	//Contador OK    	Button startButtono = (Button) findViewById(R.id.triggero);    	startButtono.setOnClickListener(new View.OnClickListener() {        		public void onClick(View view) {         			++counto;    			TextView tvo = (TextView) findViewById(R.id.ok);    			tvo.setText(String.valueOf(counto));        		}        	});              }        }


#16 AndréD.

AndréD.

    Membro

  • Membros
  • PipPip
  • 69 mensagens

Mensagem publicada 07 March 2011 - 21:44

Boas...Amigo tal como tu ando a arranhar ainda nisto de programação para android.Não percebi muito bem o que pretendes, mas em relação ao contador, aproveitei e fiz um para mim visto ser mais um exemplo que fica na biblioteca que depois pode ser utilizado.Aqui fica a minha solução. Espero que ajude.[code type=xml][/code][code type=javascript] public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button bteste = (Button) findViewById(R.id.b_contar); final TextView txteste = (TextView) findViewById(R.id.txtbox1); bteste.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { txteste.setText(""); count = count +1; txteste.setText("" + count);}[/code]Imagem colocadaCumpsAndréD.

#17 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 07 March 2011 - 23:47

O que eu queria era ter um ecrã inicial na aplicação onde poderia escolher se iria retomar uma contagem ou se iniciaria uma nova contagem, e estas contagens ficavam sempre guardadas, entendes, mas tenho que ir com calma pois ainda sou muito tenrinho nisto.se estiveres disposto a ajudar-me agradecia...

#18 AndréD.

AndréD.

    Membro

  • Membros
  • PipPip
  • 69 mensagens

Mensagem publicada 08 March 2011 - 12:23

Boas...Á já percebi, epa isso nem sequer estou a ver como posso fazer, é que como tu dizes eu eu tambem sou tenrinho.... :PTive aqui a alterar o codigo que pus aqui ontem e faz metade do que pretendes, ou seja faz uma contagem e depois uma nova se clicares em nova contagem. Tambem nao sei como meter esses valores permanentemente na memoria, mas tive aqui a pensar e isso nao tem grande logica porque depois chegarias a pontos de teres muitas variaveis a ocupar espaço na memoria. E isso nao seria nada agradavel. A não ser é claro que precises mesmo disso, mas penso que ninguem utiliza isso (posso estar enganado), quero dizer que quando a app termina ou os valores das variaveis ficam num ficheiro que depois quando a aplicação abre carrega esse ficheiro e "fica" de novo com os valores ou entao perdesse esses mesmos valores. Fiz-me entender?CumpsAndréD.p.s-> Adicioname no google talk, falamos melhor... Vai ver ao meu perfil tá la o contacto...

#19 rtfpessoa

rtfpessoa

    Fã de Android

  • Membros
  • PipPipPip
  • 344 mensagens

Mensagem publicada 08 March 2011 - 14:57

A app é mesmo para mim e keria que as contagens ficassem resgistadas para quando iniciasse a app outra vez poder escolher se iniciava uma nova u continuava uma antiga..tas a ver?Mais logo ja te adiciono...