Tutorial de Desenvolvimento de aplicações para

Transcrição

Tutorial de Desenvolvimento de aplicações para
02/10/13
Tutorial de Desenvolvimento de aplicações para Android (Parte 22) | PT Android
Entre ou registe-se
100
Início
Pesquisar fóruns
Início
Galeria
Fórum
Fórum
Wiki
8092
229
Membros
Recent Posts
Pesquisar...
Programação para Android
Programaç ão geral
Tutorial de Desenvolvimento de
aplicações para Android (Parte 22)
Tópicos em 'Programação geral' iniciados por NRAM, 20 Oct 2012.
by NRAM, 20
Oct 2012 at
12:37
Tw eet
0
1
Gosto
0
Registe-se Agora!
Login com Facebook
Login com Twitter
Login com Google
Membros Agora Online
alucardy07, Pedro bonito
Agora Online: 48 (membros: 2, visitantes: 36)
Alojamento Web
​
Neste tutorial serão abordadas formas de implementar uma barra de progresso
enquanto alguma tarefa está a ser desempenhada. Esta parte dará continuidade
ao tutorial que já tem vindo a ser elaborado:
Tutorial de Desenvolvimento de aplicações para Android
(Parte 1) - Instalação do JDK, SDK e Eclipse
Tutorial de Desenvolvimento de aplicações para Android
(Parte 2) - Instalação e configuração do ADT e
dispositivos virtuais
Tutorial de Desenvolvimento de aplicações para Android
(Parte 3) - Elaborar o projeto “Hello World” e correr no
Estatísticas do Forum
Tópicos:
https://ptandroid.com/forum/threads/tutorial-de-desenvolvimento-de-aplicações-para-android-parte-22.541/
1,741
1/8
02/10/13
Tutorial de Desenvolvimento de aplicações para Android (Parte 22) | PT Android
SDK.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 4) – Tipos de Layouts e introdução às TextView.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 5) – Atributos das TextView.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 6) – Botões e referências em XML.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 7) - Como fazer um Splash.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 8 ) - Como fazer um Menu.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 9) - Criação de comandos.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 10) - Criação de um formulário de email.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 11) - Uso da câmara e alteração do wallpaper.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 12) - Passagem de informação entre atividades.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 13) - Menu inflater
Tutorial de Desenvolvimento de aplicações para Android
(Parte 14) – Atividades em fullscreen e personalização
de botões.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 15) - Introdução de objetos numa atividade.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 16) - Tipos de letra.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 17) - Desenhar objetos onde prime.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 18) - Sliding Menu e introdução às Tabs.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 19) - Elaboração de um browser simples.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 20) - Guardar dados com SharedPreferences.
Tutorial de Desenvolvimento de aplicações para Android
(Parte 21) - Guardar os dados
comInputStream/OutputStream
No decorrer do tutorial, foram mostradas várias maneiras de tornar a aplicação
mais amigável ao utilizador, sendo este outro desse tipo de artigos. Quando as
aplicações tendem a fazer tarefas mais demoradas, os utilizadores gostam de
saber quanto tempo demora até a terminar, sendo, por norma, usada uma barra de
progresso.
Objetivo
O objetivo desta parte será implementar uma barra de progresso, enquanto
escreve/lê no ficheiro. Para tal, será usada uma nova interface, AsyncTask, numa
nova classe, que permitirá fazer o progresso contínuo.
Desenvolvimento
Mensagens:
Membros:
User Record:
Último Membro:
3,834
381
171
Wenderson Campêlo
Updates Recentes de Estado
Fernando Maia Rio de Janeiro (2
Sep 2013)
Fred Tavares Estudando
demaisssss (24 Jul 2013)
Emerson Gonçalves Pereira
São Paulo, SP (17 Jun 2013)
Rute Susana Olá, bom dia.
Comecei mesmo agora, acabo de me
registar alguem me sabe aconselhar?
eu queria instalar AndroidTM 4.1 Jelly Bean,
como faço? (18 Apr 2013)
Darlene Pimentel sao paulo (17
Apr 2013)
Partilhar esta página
Tw eet
0
Gosto
0
1
Certificado SSL
Sobre certificados SSL
Nuvem de Tags
4.0 acer
android
android 4.0
android 4.1 android 4.2 android 4.2.2
apk aplicação aplicações app apple
asus backup blackberry boston botões
ces ces 2012 chrome computadores
consola cyanogenmod desenvolvimento
desmontar ericsson estatísticas
facebook firefox froyo galaxy
galaxy nexus galaxy note galaxy note 2
galaxy s iv galaxy s3 galaxy s4
gingerbread gmail google google i/o
google play guia para iniciantes
honeycomb hp htc htc one huawei
ice cream sandwich intel ios iphone
jelly bean jogo jogos lg malware
market microsoft mobile world congress
motorola mwc 2012 nexus nexus 4
nexus 7 nokia note one x optimus pad
padfone polaroid portugal prime
programação puzzle recovery rom root
s s iii samsung samsung galaxy s4
smartphone smartphones sony tab
tablet tablets textview toshiba
https://ptandroid.com/forum/threads/tutorial-de-desenvolvimento-de-aplicações-para-android-parte-22.541/
2/8
02/10/13
Tutorial de Desenvolvimento de aplicações para Android (Parte 22) | PT Android
Neste momento é necessário criar uma classe, sendo, neste caso, nomeada de
transformer twitter ubuntu windows
windows phone windows phone 8 xperia
z71 zte
carregaDados, que será introduzida dentro da classe DadosInternos:
Code (java):
package com.ptandroid.tutorial;
import android.os.AsyncTask;
//...
public class DadosInternos extends Activity implements OnClickListener {
//...
public class carregaDados extends AsyncTask<String, Integer, String> {
//...
}
Para quem tiver curiosidade, AsyncTask permite fazer tarefas/operações em
background, sem ser necessário usar threads e publicar resultados na interface.
Ler mais aqui.
De seguida, tudo o que era feito em onClick terá que ser feito em doInBackground
da nova classe, onde a distinção será o parâmetro enviado quando essa é
chamada. Como tal, dentro de onClick ficará assim:
Code (java):
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.bSave:
new carregaDados().execute("ESCREVE");
break;
case R.id.bLoad:
new carregaDados().execute("LE");
break;
}
}
E dentro de doInBackground assim:
Code (java):
https://ptandroid.com/forum/threads/tutorial-de-desenvolvimento-de-aplicações-para-android-parte-22.541/
3/8
02/10/13
Tutorial de Desenvolvimento de aplicações para Android (Parte 22) | PT Android
@Override
protected String doInBackground(String... params) {
if (params[0].equals("LE")) {
// TODO Auto-generated method stub
String collected = null;
FileInputStream fis = null;
try {
fis = openFileInput(NFICHEIRO);
if (fis.available() == 0) {
fis.close();
dialog.dismiss();
return collected;
}
byte[] dataArray = new byte[fis.available()];
while (fis.read(dataArray) != -1) {
collected = new String(dataArray);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fis.close();
return collected;
} catch (IOException e) {
// TODO
Aut
o-ge
nera
ted ca
tch block
Até ao momento permanece praticamente
tudo
igual,
sem
grandes
novidades.
De
e.printStackTrace();
seguida, deverá ser criada uma variável de instância do tipo ProgressDialog, e
}
implementar o método onPreExecute:
}
}
if (params[0].equals("ESCREVE")){
Code (java):
String data = info.getText().toString();
package com.ptand
tro
yid
{.tutorial;
fos = openFileOutput(NFICHEIRO, Context.MODE_PRIVATE);
import android.os.Asy
fn
oc
sT
.a
ws
rk
i;
te(data.getBytes());
//...
fos.close();
public class Dado
}s
cI
an
tt
ce
hrn
(o
Is
OEe
xx
ct
ee
pn
td
is
onAc
et
)iv
{ity implements OnClickListener {
//...
// TODO Auto-generated catch block
e.printStackTrace();
public class}carregaDados extends AsyncTask<String, Integer, String> {
prote
}cted ProgressDialog dialog;
return null;
p
}rotected void onPreExecute() {
dialog = new ProgressDialog(DadosInternos.this);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setMax(100);
dialog.setTitle("A transferir dados");
dialog.show();
}
//...
}
Há que salientar que é possível escolher outros estilos e definir a taxa máxima de
“carregamento”. Ainda é necessário definir mais dois métodos, um para atualizar
a percentagem do estado e outro para quando terminar o processo, sendo estes o
https://ptandroid.com/forum/threads/tutorial-de-desenvolvimento-de-aplicações-para-android-parte-22.541/
4/8
02/10/13
Tutorial de Desenvolvimento de aplicações para Android (Parte 22) | PT Android
onProgressUpdate e onPostExecute, respetivamente:
Code (java):
protected void onProgressUpdate(Integer... progress) {
dialog.incrementProgressBy(progress[0]);
}
protected void onPostExecute(String result) {
if (result != null)
infor.setText(result);
}
Por fim, para que a barra de progresso aumente progressivamente, é necessário
introduzir o seguinte:
Code (java):
publishProgress(60);
O 60 deve ser alterado consoante o que se pretenda aumentar. Para que se veja o
que realmente se passa, foram introduzidos uns Sleeps, o que não é
recomendado, visto que o que se pretende é que a aplicação faça as coisas o mais
rápido possível:
Code (java):
public class carregaDados extends AsyncTask<String, Integer, String> {
protected ProgressDialog dialog;
protected void onPreExecute() {
dialog = new ProgressDialog(DadosInternos.this);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setMax(100);
dialog.setTitle("A transferir dados");
dialog.show();
}
@Override
protected String doInBackground(String... params) {
if (params[0].equals("LE")) {
// TODO Auto-generated method stub
String collected = null;
FileInputStream fis = null;
publishProgress(10);
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
fis = openFileInput(NFICHEIRO);
if (fis.available() == 0) {
fis.close();
publishProgress(90);
trya {
Não esquecer do dismiss(), que retira
barra de estado, nem de retornar o que foi
Thread.sleep(1000);
} catch (InterruptedException e1) {
https://ptandroid.com/forum/threads/tutorial-de-desenvolvimento-de-aplicações-para-android-parte-22.541/
5/8
02/10/13
Tutorial de Desenvolvimento de aplicações para Android (Parte 22) | PT Android
lido do ficheiro, através do collected.
Demonstração:
​
​
​
​
​
​
Projeto do Tutorial em Eclipse
Para obter todo o projeto, para poder editar no Eclipse, deve clicar aqui.
Android, Aplicações, Botões, Desenvolvimento, onPostExecute,
onProgressUpdate, Programação, ProgressDialog, TextView
NRAM, 20 Oct 2012
#1
Categories: Progra ma çã o
Comentários
Tópicos em 'Programação geral' iniciados por NRAM, 20 Oct 2012.
https://ptandroid.com/forum/threads/tutorial-de-desenvolvimento-de-aplicações-para-android-parte-22.541/
6/8
02/10/13
Tutorial de Desenvolvimento de aplicações para Android (Parte 22) | PT Android
(Deve entrar ou registar-se para responder aqui.)
Partilhar esta página
Tw eet
Gosto
0
1
Sê o/a primeiro/a entre os teus amigos a gostar disto.
Recent Data
Threads
deRespostas
Ínicio
Visualizações
Última Mensagem
Dicas
Guia
para
Iniciante
s - Como
aumenta
r
memória
do
Android
Respostas:
2
Antonio Henrique
Visualizações:
346
Ontem às 22:50
granel,
5 Jun
2013,
Geral
Android
Sony
Ericsson
Xperia
Neo
NRAM,
27 Oct
2012,
Sony
Ericsson
Xperia
Neo
Respostas:
1
sillu
Visualizações:
473
Ontem às 21:43
Respostas:
0
EsromG5
Visualizações:
3
Ontem às 21:24
Respostas:
3
Antonio Henrique
Visualizações:
47
Ontem às 15:46
Respostas:
4
StevenStuart88
Visualizações:
22
terça feira às 23:34
Dúvida
Código
de
leitura
EsromG5,
Ontem às
21:24,
Dúvidas
Dúvida
Root
Huawei
U8520
Antonio
Henrique,
Domingo
às 13:50,
Dúvidas e
Ajudas
Erro
Ajuda
urgente
não
consigo
instalar
nada!
StevenStuart88
terça feira às
18:23, Dúvidas
e Ajudas
https://ptandroid.com/forum/threads/tutorial-de-desenvolvimento-de-aplicações-para-android-parte-22.541/
7/8
02/10/13
Tutorial de Desenvolvimento de aplicações para Android (Parte 22) | PT Android
Início
Fórum
Programação para Android
Programaç ão geral
Português (pt-PT)
Forum software by XenForo™ ©2010-2012 XenForo Ltd.
https://ptandroid.com/forum/threads/tutorial-de-desenvolvimento-de-aplicações-para-android-parte-22.541/
Contacte-nos Início Para o Topo
Termos e Regras
8/8

Documentos relacionados