|
Página 1 de 1
|
[ 11 Mensagens ] |
|
[RESOLVIDO] Atualizar Contador de Tempo
| Autor |
Mensagem |
|
Augustor
What is Android?
Data de registro: 12 Set 2012, 12:53 Mensagens: 5
|
 [RESOLVIDO] Atualizar Contador de Tempo
Bom dia galera, estou com o seguinte problema, estou desenvolvendo um aplicativo que irá contar o tempo de uma determinada data até o exato momento da execução. Até ai tudo bem, mas o que não estou conseguindo é fazer o contador "contar", ficar passando os segundos, minutos, etc... E também gostaria de saber se tem algum campo para exibição do tempo para baixar(ou mesmo se tem como utilizar aquele de hora que vem no eclipse).
Flww
Editado pela última vez por Augustor em 18 Set 2012, 15:27, num total de 1 vezes
|
| 12 Set 2012, 12:56 |
|
 |
|
rafaeldecker
Android Guru
Data de registro: 28 Jan 2011, 10:42 Mensagens: 793 Localização: Rio Grande do Sul
|
 Re: Atualizar Contador de Tempo
Cara, acho que oq estás procurando é o que postei nesse tópico. Óbvio que lá é utilizado para outro fim, mas o loop recursivo de tantos em tantos ms é o que precisas para fazer o contador... Da uma olhada ae: viewtopic.php?f=2&t=20842&p=145331#p145331Tem também a classe CountDownTimer, que é mais elegante: http://developer.android.com/reference/ ... Timer.htmlAbraço
|
| 13 Set 2012, 11:11 |
|
 |
|
Augustor
What is Android?
Data de registro: 12 Set 2012, 12:53 Mensagens: 5
|
 Re: Atualizar Contador de Tempo
Opaaaaaa Então é quase isso, alias é isso, porém eu precisaria de um "ContUpTimer".
Esse que você passou faz a contagem recursiva, eu necessito de um que faça a contagem "progressiva". Tentei edita-lo mas não consegui mudar. Mas desde já, obrigado.
|
| 13 Set 2012, 15:02 |
|
 |
|
rafaeldecker
Android Guru
Data de registro: 28 Jan 2011, 10:42 Mensagens: 793 Localização: Rio Grande do Sul
|
 Re: Atualizar Contador de Tempo
Mas tu podes utilizar tranquilamente esse que eu botei...
Ali dentro do loop, tu coloca o tratamento do teu timer...
por exemplo, se ele for chamar de 1 em 1 segundo... a cada vez que ele entrar no loop, tu incrementa o valor dos segundos do teu timer...
Não tem mistério, só é um pouco trabalhoso.
Abraço
|
| 13 Set 2012, 16:28 |
|
 |
|
Augustor
What is Android?
Data de registro: 12 Set 2012, 12:53 Mensagens: 5
|
 Re: Atualizar Contador de Tempo
Olá novamente então não consegui ainda...... Vou explicar o que estou tentando fazer, e onde está o problema.... Estou tentando fazer um sistema parecido com este ( http://antoniorgf.vilabol.uol.com.br/cronometros.htm), porém quero contar os anos,meses,.....,segundos a partir de uma determinada data. Até aqui tudo bem. O que não estou conseguindo é faze-lo ir atualizando os segundos na tela, só consegui colocando um botão de "refresh" que chama o meu MostraTempo();. Eu queria fazer sem precisar clicar no botão. Me falaram para utilizar Threads, mas não consegui.... Flww Abraços
|
| 18 Set 2012, 11:58 |
|
 |
|
rafaeldecker
Android Guru
Data de registro: 28 Jan 2011, 10:42 Mensagens: 793 Localização: Rio Grande do Sul
|
 Re: Atualizar Contador de Tempo
Site que tu colocasse não está abrindo.
Tu já tens a data calculada né? Falta só iterar ela (ir diminuindo, o relógio propriamente dito), correto?
|
| 18 Set 2012, 12:14 |
|
 |
|
rafaeldecker
Android Guru
Data de registro: 28 Jan 2011, 10:42 Mensagens: 793 Localização: Rio Grande do Sul
|
 Re: Atualizar Contador de Tempo
coloca teu código aí...
do teu mostraTempo()...
|
| 18 Set 2012, 12:39 |
|
 |
|
Augustor
What is Android?
Data de registro: 12 Set 2012, 12:53 Mensagens: 5
|
 Re: Atualizar Contador de Tempo
Este site mostra os dias, minutos, segundos, etc.. de vida, e vai atualizando na tela. Mas, a data eu já consegui exibir na tela, porém só preciso "roda-la". Ai vai o código(está meio confuso, mas tudo bem) void CarregaSegundaTela (){ setContentView (R. layout. tela2); //inicia a segunda tela Button btvolt = (Button)findViewById (R. id. btvoltar); //inicia o botao voltar btvolt. setOnClickListener(new View. OnClickListener() { @Override public void onClick (View arg0 ) { onCreate (null); }//chama a primeira tela } ); MostraTempo (); Button btat = (Button)findViewById (R. id. tb1); btat. setOnClickListener(new View. OnClickListener() { @Override public void onClick (View v ) { MostraTempo (); } }); }//Carregar a segunda tela public void MostraTempo (){ final TextView ianos, imeses, idias, ihoras, iminutos, isegundos; ianos = (TextView ) findViewById (R. id. ano); imeses = (TextView ) findViewById (R. id. mes); idias = (TextView ) findViewById (R. id. dia); ihoras = (TextView ) findViewById (R. id. hora); iminutos = (TextView ) findViewById (R. id. minuto); isegundos = (TextView ) findViewById (R. id. segundo); final int SegMinuto= 60; int SegHora= 3600, SegDia= 86400, SegMes= 2628000, SegAno= 31536000; //Conversões Calendar dataInicio = Calendar. getInstance(); // Data Desejada dataInicio. set(2000, Calendar. JUNE, 14, 10, 0, 54); // Data de hoje Calendar dataFinal = Calendar. getInstance(); // Calcula a diferença entre hoje e da data de inicio long diferenca = dataFinal. getTimeInMillis() - dataInicio. getTimeInMillis(); long diferenca2 = diferenca / 1000; final long Resto=diferenca2%SegAno; long Resto2=diferenca2%SegMes; long Resto3=diferenca2%SegDia; final long Resto4=diferenca2%SegHora; long Resto5=diferenca2%SegMinuto; //System.out.println(""+diferenca2/SegAno+ " Ano(s) " +Resto/SegMes +" Meses(s) " +Resto2/SegDia + " Dias(s)" + Resto3/SegHora + " Hora(s)" + Resto4/SegMinuto + "Minuto(s)" + Resto4%SegMinuto + "Segundo(s)"); ianos. setText(String. valueOf(diferenca2/SegAno )); imeses. setText(String. valueOf(Resto/SegMes )); idias. setText(String. valueOf(Resto2/SegDia )); ihoras. setText(String. valueOf(Resto3/SegHora )); iminutos. setText(String. valueOf(Resto4/SegMinuto )); isegundos. setText(String. valueOf(Resto4%SegMinuto )) }
|
| 18 Set 2012, 12:45 |
|
 |
|
rafaeldecker
Android Guru
Data de registro: 28 Jan 2011, 10:42 Mensagens: 793 Localização: Rio Grande do Sul
|
 Re: Atualizar Contador de Tempo
Opa... Fiz um exemplo para tu dares uma olhada. Não analisei se teus cálculos estão certos, porque o foco não é este. Criei um projeto aqui para fazer o código para te mostrar como solucionar teu problema. Para layout, criei um TextView para cada item... enfim, dá uma olhada aí: activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="Anos: " />
<TextView android:id="@+id/years" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="0" /> </LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="Meses: " />
<TextView android:id="@+id/months" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="2" /> </LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="Dias: " />
<TextView android:id="@+id/days" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="25" /> </LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="Horas: " />
<TextView android:id="@+id/hours" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="10" /> </LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="Minutos: " />
<TextView android:id="@+id/minutes" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="15" /> </LinearLayout>
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="Segundos: " />
<TextView android:id="@+id/seconds" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:padding="@dimen/padding_medium" android:text="25" /> </LinearLayout>
</LinearLayout>
A classe que faz o contador: package com. rafaeldecker. timer; import java. util. Calendar; import android. os. Bundle; import android. os. Handler; import android. app. Activity; import android. widget. TextView; public class MainActivity extends Activity { private Handler handler; private static final int ONE_MINUTE_IN_SECONDS = 60; private static final int ONE_HOUR_IN_SECONDS = 3600; private static final int ONE_DAY_IN_SECONDS = 86400; private static final int ONE_MONTH_IN_SECONDS = 2628000; private static final int ONE_YEAR_IN_SECONDS = 31536000; private Calendar startDate; private Calendar todayDate; private long remainingTime; /** * VIEWS */ private TextView yearTextView; private TextView monthTextView; private TextView dayTextView; private TextView hourTextView; private TextView minuteTextView; private TextView secondTextView; @Override public void onCreate (Bundle savedInstanceState ) { super. onCreate(savedInstanceState ); setupViews (); setupTimer (); updater (); } private void setupViews () { setContentView (R. layout. activity_main); handler = new Handler (); yearTextView = (TextView ) findViewById (R. id. years); monthTextView = (TextView ) findViewById (R. id. months); dayTextView = (TextView ) findViewById (R. id. days); hourTextView = (TextView ) findViewById (R. id. hours); minuteTextView = (TextView ) findViewById (R. id. minutes); secondTextView = (TextView ) findViewById (R. id. seconds); } private void setupTimer () { startDate = Calendar. getInstance(); startDate. set(2000, Calendar. JUNE, 14, 10, 0, 54); todayDate = Calendar. getInstance(); remainingTime = (todayDate. getTimeInMillis() - startDate. getTimeInMillis()) / 1000; } public void updater () { if (remainingTime > 0) { // Decrease the time in one second remainingTime -= 1; updateDisplay (); Runnable notification = new Runnable() { public void run () { updater (); } }; // It will be called each 1 second handler. postDelayed(notification, 1000); } } private void updateDisplay () { long yearDivisionRest = remainingTime % ONE_YEAR_IN_SECONDS; long monthDivisionRest = remainingTime % ONE_MONTH_IN_SECONDS; long dayDivisionRest = remainingTime % ONE_DAY_IN_SECONDS; long hourDivisionRest = remainingTime % ONE_HOUR_IN_SECONDS; yearTextView. setText("" + (remainingTime / ONE_YEAR_IN_SECONDS )); monthTextView. setText("" + (yearDivisionRest / ONE_MONTH_IN_SECONDS )); dayTextView. setText("" + (monthDivisionRest / ONE_DAY_IN_SECONDS )); hourTextView. setText("" + (dayDivisionRest / ONE_HOUR_IN_SECONDS )); minuteTextView. setText("" + (hourDivisionRest / ONE_MINUTE_IN_SECONDS )); secondTextView. setText("" + (hourDivisionRest % ONE_MINUTE_IN_SECONDS )); }} Não cheguei a comentar o código, mas acho que ele está bem entendível. Caso tenhas dúvida em alguma parte do código, é só perguntar. Espero que isso te ajude. Abraço.
Editado pela última vez por rafaeldecker em 18 Set 2012, 14:51, num total de 1 vezes
|
| 18 Set 2012, 14:13 |
|
 |
|
Augustor
What is Android?
Data de registro: 12 Set 2012, 12:53 Mensagens: 5
|
 Re: Atualizar Contador de Tempo
=OOOOOOOOOOOOOOOOOOOOOOOOOOOO eeeeeeeeeita caraaaamba, você fez isso agora ou já tinha pronto? é EXATAMENTE o que eu precisava deu a mão e o braço junto rsrs =D
Dá para entender bem o código, a única coisa que precisei mudar foi o "remainingTime -= 1;" para "remainingTime += 1;", para ele contar progressivamente....
nosssssss, Muitoooooooo Obrigadooooo mesmo Pela ajuda e pela atenção.
Flww Abraços
|
| 18 Set 2012, 14:40 |
|
 |
|
rafaeldecker
Android Guru
Data de registro: 28 Jan 2011, 10:42 Mensagens: 793 Localização: Rio Grande do Sul
|
 Re: Atualizar Contador de Tempo
Opa. De nada, se precisares, estamos a disposição pra tentar ajudar. Referente ao código, fiz agora  Só não esquece de alterar o título do tópico e colocar [RESOLVIDO] na frente. Abraço
|
| 18 Set 2012, 14:43 |
|
|
|
Página 1 de 1
|
[ 11 Mensagens ] |
|
Quem está online |
Usuários vendo este fórum: abruzzi, afpcp, Alan Unger, alansousa, Alex Marcelo Burnett, alexcost2002, alexmarcolongo, alfredo_ej, alineri, allart, ANDRE FELIX DE ASSIS, Aparec, ariostorecco, arnaldo.miranda, attomweb, augustomig, b7web, bernardodauer, blurkness, bocajunior88, Bravox, brazucx, brian15, brunogh, C0GuM3I0, caio, Clauber, claudio, cleberkct, compto, dikiloco, diogeneskelsen, dmd, Dookan, du_sr, Dudi_FC, edervieira, eduardo.ali, eloilton, emersonalencar, erissi, fabiano_eletro, fernando neves, fernandodotnet, flaviocc, frederico.affini, free_w3000, furlanrapha, gphonemania, guto.pro, gutomilani, HAMSES, helder, helder84, henrique.garcia, hopper.frf, Ielo8, ismaelbpaiva, jacksonst, jackstuard, Jalerson, Jango Fett, Javanês, jhou, José Guilherme, juliano, julianofischer, juliomar, Leonardo333, lucianno, luciocamilo, luiz, Luke Skywalker, marcelorferrari, MARCIOHG, marcos_trb, marcosf63, marinho5, Marlus Dias Silva, Mayara Trevisol, memnoch, Meticore, Microdesk, MpassosT, mrangel, mrkensley, neiesc, Newton Barbosa, nina.rm, Nute Gunray, o-raposa, oliverlessa, otpor, Padawan, pamonteiro, Paulo, pbcjunior, peixe, pererinha, persiomotta, phpower1, pomarolli, rafael.cioban, ramonsiebra, robsonrg, rodrigoinnova, Roll, romuloff, ronanPlus, rosano, Rufino, srmoreira, srsilveira, Stryder, suissa, taluna, Thiago, thiagoalgo, thiaguim, ubiratan, Velhinho, vicfalmac, viniciusllima, W3 [Sitesearch], weverton, wilson.slima, wylken, Zam Wesell, zeantonio, zorba e 1 visitante |
|
Você não pode criar novos tópicos neste fórum Você não pode responder tópicos neste fórum Você não pode editar suas mensagens neste fórum Você não pode excluir suas mensagens neste fórum Você não pode enviar anexos neste fórum
|
|