Ver mensagens sem resposta | Ver tópicos ativos Hoje é 20 Nov 2019, 05:46



Responder Tópico  [ 48 Mensagens ] 
 [Mini Tuto] Singleton - compartilhando dados 
Autor Mensagem
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem [Mini Tuto] Singleton - compartilhando dados
Muitas vezes precisamos compartilhar dados entre activities, uma forma de fazer isso é por meio de uma classe tipo Singleton.
Um Singleton é uma classe que permite a criação de uma única instância da classe.
O código para ser um singleton precisa controlar a unicidade de instância. No código abaixo:
- construtor da classe é private
- getInstance só dá um new se instance for null.

Vamos fazer um exemplo.
Vamos criar uma nova classe com o nome MySingleton (file>new>class...).

public class MySingleton {

    private int myInt;
    private String myString;
   
    private static MySingleton instance ;
   
    private MySingleton() {
        myInt = 0;
        myString = "";
    }
   
    public static MySingleton getInstance () {
        if ( MySingleton.instance == null ) {
            MySingleton.instance = new MySingleton();
        }
        return MySingleton.instance;
    }

    public int getMyInt() {
        return myInt;
    }

    public void setMyInt(int i) {
        this.myInt = i;
    }
    public String getMyString() {
        return myString;
    }

    public void setMyString(String s) {
        this.myString = s;
    }

}
 


E usamos a classe assim:

     MySingleton mDados = MySingleton.getInstance ();
     mDados.setMyInt(100);
     mDados.setMyString("Teste");
 


E em outra activity:

     MySingleton mDados = MySingleton.getInstance ();
     int i = mDados.getMyInt();
     String s = mDados.getMyString();
 


OBS: Este exemplo é para acesso não concorrente. Para compartilhar entre activity-activity, activity-service. Se for usar com threads precisa ser sincronizado.

OBS: Singleton para acesso concorrente

Bons códigos!

PS: outros posts sobre Singleton
http://agorandroid.blogspot.com.br/2013 ... leton.html
http://agorandroid.blogspot.com.br/2014 ... nager.html

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


24 Jan 2012, 10:32
Perfil
What is Android?
What is Android?

Data de registro: 05 Dez 2011, 20:03
Mensagens: 7
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Boa noite,

A H Gusukuma, muito obrigado pelo mini-tuto que me ajudou d+++, muito!!!

Mas pela nubisse, vem uma grande dúvida.
Com string rolou tudo legal me virei ate q bem:
public void onClick(View v) {
        // TODO Auto-generated method stub
        TextView resposta = (TextView) findViewById(R.id.tViewResposta);       
       
        Dados mDados = Dados.getInstance();
        mDados.setEmpresa(((TextView) cboEmpresa.getSelectedView()).getText().toString());
       
        String msg = mDados.getEmpresa();
        resposta.setText(msg);
    }


Mas não sei como fazer o código com int ??!!
Como fica os códigos, não sei como proceder..

Obrigado novamente,

Ateh


03 Fev 2012, 00:19
Perfil
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Olá fcpmike,

Faz o seguinte:

       double salario = Double.parseDouble(valorSalario.getText().toString());
        int filhos = Integer.parseInt(numeroFilhos.getText().toString());
 


Mas para garantir que vai ser digitado somente números defina o EditText com (não coloquei os outros atributos):

    <EditText android:id="@+id/valorSalario" android:numeric="decimal"/>
    <EditText android:id="@+id/numeroFilhos" android:numeric="integer"/>
 

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


03 Fev 2012, 04:23
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 28 Jan 2012, 19:23
Mensagens: 161
Localização: Blumenau/SC
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Parabéns Gusukuma pelo tutorial, perdi a conta de quantas vezes falei em singleton nas respostas...

_________________
Jonathan Rafael Zanella
Motorola Defy - Gingerbread(2.3.5)
Samsung Galaxy Nexus - Jelly Bean(4.2.2)

Programador C++ e Android profissionalmente.

Campanha: Facilite sua vida e a dos outros usuários
Objetivo: Gerêncie o ciclo de vida do seu tópico: criação, respostas, solução, agradecimentos e [RESOLVIDO] no título do primeiro post.


03 Fev 2012, 11:33
Perfil
What is Android?
What is Android?

Data de registro: 05 Dez 2011, 20:03
Mensagens: 7
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Obrigado, A H Gusukuma!!!

Tudo certo, valeu.


07 Fev 2012, 21:58
Perfil
What is DDMS?
What is DDMS?

Data de registro: 12 Mai 2012, 17:59
Mensagens: 32
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
seria possivel salvar um array inteiro?


21 Ago 2012, 01:53
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
rafinhamks escreveu:
seria possivel salvar um array inteiro?


Dá sim, basta vc criar um atributo do tipo array e um "get"/"set" para ele.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


21 Ago 2012, 23:12
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 11 Dez 2012, 11:48
Mensagens: 113
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
A H Gusukuma, era isto que você havia me falado certo? vou fazer testes aqui, e depois posto se consegui, mais mesmo se não der certo obrigado pela ajuda e atenção.


16 Jan 2013, 11:01
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Como seria para eu passar 10 valores (Double) para a outra atividade?

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


09 Abr 2013, 12:57
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Daniel Tibúrcio escreveu:
Como seria para eu passar 10 valores (Double) para a outra atividade?


Se for sempre 10, pode usar um array : double[] valores = new double[10];
Se variar, use um ArrayList: ArrayList<Double> valores = new ArrayList<Double>();
Valores.add(valor);

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


09 Abr 2013, 13:09
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
E se para cada valor eu tivesse que passar uma descrição, como faria, seriam dois ArrayList?

Como passá-los?

Este é um problema de todos os exemplos que encontrei, só pensam no mais simples, assim fica difícil pegar a manha.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


09 Abr 2013, 19:35
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Daniel Tibúrcio escreveu:
E se para cada valor eu tivesse que passar uma descrição, como faria, seriam dois ArrayList?

Como passá-los?

Este é um problema de todos os exemplos que encontrei, só pensam no mais simples, assim fica difícil pegar a manha.


Daniel, você tem razão: os meus tutoriais nesse sentido são na maioria das vezes simples. Mas, tem um motivo. Eu, normalmente trato sobre idéias, assuntos que devem ser explorados pelos interessados. Eu vejo o assunto como algo que pode render muita utilidade e que pode ser usado em muitas situações no desenvolvimento de soluções diversas.
Então é como colocar um foco de luz num assunto e deixar as idéias brotarem nas iluminadas cabeças dos leitores!

Feito o parentese, vamos voltar ao caso!

Você pode definir uma classe tipo:


public class ItemLista {

    private final String descricao;
    private final double valor;

    public ItemLista(String descricao, double valor) {
                this.descricao = descricao;
                this.valor = valor;
    }
   
    public String getDescricao() {
        return this.descricao;
    }
   
    public double getValor() {
        this.valor = valor;
    }
}
 


e usar assim:


// defina um ArrayList
ArrayList<ItemLista> mLista = new ArrayList<ItemLista>();

// e para cada linha faz

ItemLista linha = new ItemLista(descricao, valor);
mLista.add(linha);

// no final você terá n linhas em mLista

 


Note, que isso pode ser útil, mas foge do assunto por ser OO básico!

OBS: não testei, verifica se não tem erro de compilação!

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


10 Abr 2013, 07:44
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Obrigado, Gusukuma, vejo em você um excelente profissional, desculpe se não me expressei bem, mas no início não é fácil.

Todo o sucesso para você, abraço.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 11:54
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Daniel Tibúrcio escreveu:
Obrigado, Gusukuma, vejo em você um excelente profissional, desculpe se não me expressei bem, mas no início não é fácil.

Todo o sucesso para você, abraço.


Que isso, cara! Não precisa se desculpar.
Sei que no início é assim mesmo, só tem um jeito: perseverar!

Boa Sorte!

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


10 Abr 2013, 12:05
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Tive que fazer uma mudança por erro de compilação para:

public Double getValor() {
return this.valor;

Quando estiver funcionando eu te aviso, valeu, amigo !!!

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 13:42
Perfil WWW
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Desculpe, se for possível excluir o tópico anterior, pode excluir, já passei os dados para a outra Activity e estou usando os dados para preencher o ListView, obrigado.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 17:57
Perfil WWW
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Realmente não encontrei nenhum exemplo de carregar a ListView na segunda Activity, tudo que aparece é diferente.

Outro dia eu tinha visto um exemplo mais ou menos da seguinte forma, tratando as entradas do ArrayList, mas perdi:

ArrayList<ItemLista> mLista = (ArrayList<ItemLista>)
getIntent().getSerializableExtra("mLista");

for(int i = 0; i < mLista.size(); i++)
//mover para listview;

Estou perto da solução?

Deu o erro do anexo ao passar para a segunda Activity, com os seguintes comandos:

linha = new ItemLista("Valor Líquido", vrliq);
mLista.add(linha);
i.putExtra("mLista", mLista);

startActivity(i);

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 19:09
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
O exemplo era para usar com Singleton
Para usar com putExtra, precisa fazer o seguinte:

public class ItemLista implements Serializable {
  static final long serialVersionUID = -9359378245l;

 


Para enviar um objeto (no caso uma lista de objetos), precisar ser serializável.

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


10 Abr 2013, 22:14
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Deu o mesmo erro, Gusukuma, no comando

startActivity(i);

Ao recber na outra Activity, como mover o conteúdo do array para a ListView?

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 23:21
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Posta o erro do LogCat

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


10 Abr 2013, 23:26
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Poxa, já estava indo dormir, pensando que você não fosse 24 horas, rs.

04-10 21:19:25.902: E/AndroidRuntime(7429): FATAL EXCEPTION: main
04-10 21:19:25.902: E/AndroidRuntime(7429): java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = br.ideiainformatica.idepagpro.Principal$ItemLista)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Parcel.writeSerializable(Parcel.java:1176)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Parcel.writeValue(Parcel.java:1130)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Parcel.writeList(Parcel.java:519)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Parcel.writeValue(Parcel.java:1092)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Parcel.writeMapInternal(Parcel.java:488)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Bundle.writeToParcel(Bundle.java:1552)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Parcel.writeBundle(Parcel.java:502)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.content.Intent.writeToParcel(Intent.java:5623)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1341)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1374)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.app.Activity.startActivityForResult(Activity.java:2827)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.app.Activity.startActivity(Activity.java:2933)
04-10 21:19:25.902: E/AndroidRuntime(7429): at br.ideiainformatica.idepagpro.Principal.Calculos(Principal.java:548)
04-10 21:19:25.902: E/AndroidRuntime(7429): at br.ideiainformatica.idepagpro.Principal$1.onClick(Principal.java:75)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.view.View.performClick(View.java:2485)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.view.View$PerformClick.run(View.java:9080)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Handler.handleCallback(Handler.java:587)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Looper.loop(Looper.java:123)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.app.ActivityThread.main(ActivityThread.java:3687)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.lang.reflect.Method.invokeNative(Native Method)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.lang.reflect.Method.invoke(Method.java:507)
04-10 21:19:25.902: E/AndroidRuntime(7429): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
04-10 21:19:25.902: E/AndroidRuntime(7429): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
04-10 21:19:25.902: E/AndroidRuntime(7429): at dalvik.system.NativeStart.main(Native Method)
04-10 21:19:25.902: E/AndroidRuntime(7429): Caused by: java.io.NotSerializableException: br.ideiainformatica.idepagpro.Principal
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1535)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1143)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
04-10 21:19:25.902: E/AndroidRuntime(7429): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
04-10 21:19:25.902: E/AndroidRuntime(7429): at android.os.Parcel.writeSerializable(Parcel.java:1171)
04-10 21:19:25.902: E/AndroidRuntime(7429): ... 24 more

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 23:28
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Troca o putExtra por putSerializable

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


10 Abr 2013, 23:34
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Erro de compilação:

The method putSerializable(String, ArrayList<Principal.ItemLista>) is undefined for the type Intent Principal.java /idepagpro/src/br/ideiainformatica/idepagpro line 547 Java Problem

O comando ficou:

i.putSerializable("mLista", mLista);

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 23:37
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Sorry, precisa do Bundle.
Faz o seguinte:

        Bundle args = new Bundle();
        args.putSerializable("mLista", mLista);
        i.putExtras(args);
 

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


10 Abr 2013, 23:42
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Erro no mesmo comando:

04-10 21:48:17.433: E/AndroidRuntime(8718): FATAL EXCEPTION: main
04-10 21:48:17.433: E/AndroidRuntime(8718): java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = br.ideiainformatica.idepagpro.Principal$ItemLista)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Parcel.writeSerializable(Parcel.java:1176)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Parcel.writeValue(Parcel.java:1130)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Parcel.writeList(Parcel.java:519)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Parcel.writeValue(Parcel.java:1092)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Parcel.writeMapInternal(Parcel.java:488)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Bundle.writeToParcel(Bundle.java:1552)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Parcel.writeBundle(Parcel.java:502)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.content.Intent.writeToParcel(Intent.java:5623)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1341)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1374)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.app.Activity.startActivityForResult(Activity.java:2827)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.app.Activity.startActivity(Activity.java:2933)
04-10 21:48:17.433: E/AndroidRuntime(8718): at br.ideiainformatica.idepagpro.Principal.Calculos(Principal.java:551)
04-10 21:48:17.433: E/AndroidRuntime(8718): at br.ideiainformatica.idepagpro.Principal$1.onClick(Principal.java:76)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.view.View.performClick(View.java:2485)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.view.View$PerformClick.run(View.java:9080)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Handler.handleCallback(Handler.java:587)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Looper.loop(Looper.java:123)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.app.ActivityThread.main(ActivityThread.java:3687)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.lang.reflect.Method.invokeNative(Native Method)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.lang.reflect.Method.invoke(Method.java:507)
04-10 21:48:17.433: E/AndroidRuntime(8718): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
04-10 21:48:17.433: E/AndroidRuntime(8718): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
04-10 21:48:17.433: E/AndroidRuntime(8718): at dalvik.system.NativeStart.main(Native Method)
04-10 21:48:17.433: E/AndroidRuntime(8718): Caused by: java.io.NotSerializableException: br.ideiainformatica.idepagpro.Principal
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1535)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1143)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
04-10 21:48:17.433: E/AndroidRuntime(8718): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
04-10 21:48:17.433: E/AndroidRuntime(8718): at android.os.Parcel.writeSerializable(Parcel.java:1171)
04-10 21:48:17.433: E/AndroidRuntime(8718): ... 24 more

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 23:51
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Posta a classe ItemLista

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


10 Abr 2013, 23:55
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Não precisa olhar hoje, deve estar cansado.
Ou vai assistir o jogo do seu time enquanto trabalha?


public class ItemLista implements Serializable {
static final long serialVersionUID = -9359378245l;

private final String descricao;
private final double valor;

public ItemLista(String descricao, double valor) {
this.descricao = descricao;
this.valor = valor;
}

public String getDescricao() {
return this.descricao;
}

public Double getValor() {
return this.valor;
}
}

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


10 Abr 2013, 23:58
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Ela está em um arquivo separado ou está dentro da activity?
Eu estou quase sempre com a TV ligada

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


11 Abr 2013, 00:01
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
kkkkk, eu estou secando o cruzerim pra perder pro CSA, mas vejo mais Grêmio x Flu. Torce para quem? Já deve saber que sou Galo.

Está dentro da Activity.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


11 Abr 2013, 00:09
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Cria um novo arquivo tipo class e grava a classe ItemLista nela.
Está tentando serializar a activity inteira.

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


11 Abr 2013, 00:12
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Beleza, só falta mover os dados do ArrayList para o ListView da segunda Activity, que está assim (descri é o ListView):

package br.ideiainformatica.idepagpro;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ListView;
//import br.ideiainformatica.idepagpro.Principal.ItemLista;

import java.util.ArrayList;
public class Calculado extends Activity {
ListView descri;
//private ArrayList<ItemLista> mLista;// = new ArrayList<ItemLista>();

@Override

public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

//TextView textView = new TextView(this);
Intent intent = getIntent();

Bundle params = intent.getExtras();
ArrayList<ItemLista> mLista = (ArrayList<ItemLista>)
getIntent().getSerializableExtra("mLista");

for(int i = 0; i < mLista.size(); i++)
//mover para listview;
//descri.setLabelFor(i) = mLista.getdescricao;

;

descri = (ListView) findViewById(R.id.descri);

}
}
}

Pesquisei a tarde toda mas realmente não consegui com nenhum dos comandos encontrados.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


11 Abr 2013, 00:18
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Agora não me ocorre nenhum exemplo que se adeque ao seu caso, na verdade tem vários tópicos aqui sobre listView mas a maioria é mais complexa (nem tanto).
No livro do Lecheta tem vários também, mas não estou com ele aqui para dar uma olhada.
Só vou poder ver isso amanhã.

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


11 Abr 2013, 00:38
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
O componente menos falado no livro é o ListView, mas vou dar uma olhada amanhã.

Muito obrigado, desculpe tomar tanto o seu tempo, boa noite.

Mas não deixa de ser incrível, ter os dados na mão mas ser complicado mostrá-los na tela.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


11 Abr 2013, 00:41
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Daniel Tibúrcio escreveu:
O componente menos falado no livro é o ListView, mas vou dar uma olhada amanhã.

Muito obrigado, desculpe tomar tanto o seu tempo, boa noite.

Mas não deixa de ser incrível, ter os dados na mão mas ser complicado mostrá-los na tela.


Tem vários, veja também ListActivity
É mais demorado explicar do que fazer :lol:
Veja sobre ListView e adapters, vai entender.
Se não resolver abre um tópico sobre ListView no forum: GUI, Layout e View

Citação:
Mas não deixa de ser incrível, ter os dados na mão mas ser complicado mostrá-los na tela

Como você viu, para transferir uma simples lista de objetos entre duas activities precisa de uma série de conhecimentos. Mas, isso só se adquire na prática ou estudando.
Cada coisa que você quer fazer é a mesma coisa. O problema é que você quer fazer o app sem ter feito os passos do aprendizado. É o que estou achando, por favor não é para ofender.
Escrevi muito sobre aprendizado, veja por exemplo, esse : viewtopic.php?f=7&t=22901
Abraços

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


11 Abr 2013, 08:45
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
O comentário de alguém tão experiente não ofende, ao contrário estimula.
Vou estudar mais, os pré-requisitos que você apontou eu já tenho, mas Java e Android ainda são desafios, e vou em frente.
O maior material que tenho é a Net, e existem exemplos conflitantes.
Um abraço e muito sucesso.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


11 Abr 2013, 09:19
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Daniel Tibúrcio escreveu:
O comentário de alguém tão experiente não ofende, ao contrário estimula.
Vou estudar mais, os pré-requisitos que você apontou eu já tenho, mas Java e Android ainda são desafios, e vou em frente.
O maior material que tenho é a Net, e existem exemplos conflitantes.
Um abraço e muito sucesso.

Obrigado, por entender!
Eu conheço várias linguagens, como você (até EasyTrieve!), mas eu nunca estudei tanto uma linguagem (Java) e uma plataforma (Android). E ainda preciso estudar muito mais.
Quanto aos exemplos conflitantes, muitas vezes são assim pelo caminho adotado. Tem muitas formas de fazer. Também escrevi sobre dificuldade de avaliar uma fonte: viewtopic.php?f=7&t=19881
Mas, nesse caso, posta nos foruns aqui no portal.
Quase sempre vai receber alguma ajuda.

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


11 Abr 2013, 09:29
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Também conheço Easytrieve, fiz diversos programas com ele há 7 anos, 15 anos depois de sair da Cemig e ser contratado por ela para participar da conversão do sistema de Consumidores do mainframe para o SAP. Trabalhei lá com PL/1, Cobol, Portugol (linguagem da Cobra para micros), APL e nem sei mais quantas linguagens. Depois que sa[i de lá trabalhei com Clipper, Joiner (um Clipper nacional, bem melhor que ele) e depois Delphi, esta já há 17 anos, desde a versão 1, mas parei na 7, que uso até hoje.
O Androis é mais um desafio que ainda pretendo alcançar, mesmo aos 54 anos.
Vou estudar e seguir seus conselhos.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


11 Abr 2013, 10:26
Perfil WWW
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 10 Jan 2012, 12:28
Mensagens: 245
Localização: Belo Horizonte, MG
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Trabalhei na Cemig de 1978 até 1991, foi lá que trabalhei com Easytrieve e todas as linguagens de mainframe que aprendi.

_________________
Daniel Tibúrcio
Ideia Informática Ltda.
http://www.ideiainformatica.com.br
Meu aplicativo
https://play.google.com/store/apps/details?id=br.ideiainformatica.idepagprof
(31)3291-9799
Skype ideia_daniel
"O Senhor é o meu Pastor, nada me faltará" Salmo 23:1


12 Abr 2013, 21:46
Perfil WWW
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Grande Gusukuma, venho te dar uma perturbada aqui... li esse tutorial, dei uma pesquisada e uso o Singleton em todos os meus projetos, e adianto... ele salvou minha vida. Agora com tudo funcionando, dei uma aprofundada e comecei a ver muita gente web falando que Singleton é um anti pattern etc e tal. Com esse monte de framework foda, é tranquilo não usar Singleton, injeção de dependencias é muito mais tranquilo de ser implementado, mas para Android estou achando muito complicado resolver isso... sabe outros meios?

_________________
Powell


26 Abr 2013, 12:44
Perfil
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Alguns post que procurei... http://blog.caelum.com.br/singletons-e- ... o-a-vista/ ou http://www.guj.com.br/java/44894-single ... tipattern-

_________________
Powell


26 Abr 2013, 12:45
Perfil
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Vou ler depois te dou um retorno.
Mas, não creio que deva se preocupar.
O problema do Singleton é quando se abusa, ou usa indevidamente, ou implementa errado.
Mas isso é significativo em aplicações servidoras, não é o caso de uma app.

De qualquer forma, vou ler e depois te informo.
Abraço

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


26 Abr 2013, 13:17
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Na época que o singleton foi considerado um anti-pattern era pelo uso errado, como o Gusukuma falou.

Na minha visão, o uso errado era em sistemas multiusuários. Imagina cada usuário tendo acesso no mesmo objeto. Sincronizando o acesso, o tempo de espera, se tivessem muitos usuários, era gigantesco.

No Android a coisa muda, apenas um usuário utiliza a aplicação, então vc já não terá o problema de concorrência (até tem, mas será bem menor e controlado).

A grande vantagem é guardar o estado de um objeto. Nada que vc não possa fazer com o uso do banco, mas com ele vc não precisa ficar instanciando o mesmo objeto sempre que for usar, assim poupa memória com objetos perdidos e ainda é menos complexo, dependendo da implementação. Sem falar que é muito mais rápido acessar a memória RAM, onde tem um objeto criado, que o disco (se bem que no android, praticamente, tanto faz) e ainda ter que montar o objeto.

Mesmo assim vc ainda pode ter problema de mau uso. Se o seu singleton for muito pesado, por exemplo, vc pode ter problemas de falta de memória. Lembrando que temos muito pouca memória disponível para a aplicação.

Tem que avaliar suas opções pra saber quando usá-lo.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


26 Abr 2013, 13:49
Perfil WWW
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Raphael, esquece! Isso é papo cabeça de teóricos de OO. Não tenho nada contra, muito pelo contrário!

Veja esse exemplo que usei no post: viewtopic.php?f=7&t=24112



public final class MySingleton {
   
     private static MySingleton instance = new MySingleton();
     
        private final ArrayList<String> lista;
        private final List<String> unmodifiableList;
   
        private MySingleton() {
            lista = new ArrayList<String>();
            unmodifiableList = Collections.unmodifiableList(lista);
        }
       
        public static MySingleton getInstance () {
            return instance;
        }

        public synchronized void addItem(String item) {
            lista.add(item);
        }

        public synchronized void clearLista() {
            lista.clear();
        }
        public synchronized List<String> getLista() {
            return unmodifiableList;
        }
    }


É Singleton, e não é somente variável global. Tem lógica nele. Não é para guardar apenas variáveis.

Mais as considerações do Antunes, claro!

PS: imagina passar uma lista de objetos entre activities usando o Bundle, serializa e depois deserializa...

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


26 Abr 2013, 13:51
Perfil
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Eu acho que vocês estão certos... o meu uso é de modo moderado... mas sem ele eu estaria ferrado! Ruim é ver o Guilherme Silveira falando... hehe vou fazer o curso da caelum só pra perguntar isso a ele. Vlw mestres!

_________________
Powell


26 Abr 2013, 16:23
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
@offtopic
Citação:
-Quero trabalhar com Antunes

Raphael,

Já viu essa url??

viewtopic.php?f=57&t=24013

Gusukuma,

Desculpe-me pelo off!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


26 Abr 2013, 18:19
Perfil WWW
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Vi Antunes! Meu coração dispara! UAHuAHu Mas ainda estou preso na monografia e sou do interior do estado, ae complica minha ida... mas encaro como um adiamento por enquanto! Vlw ae! Abraço!

_________________
Powell


26 Abr 2013, 18:55
Perfil
What is Android?
What is Android?

Data de registro: 30 Mar 2015, 23:54
Mensagens: 3
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
Uma duvida que eu tenho é porque nao usar o IntentFotResult ou ate mesmo um BD ao invés de Singleton. Quando um Singleton seria melhor ?


13 Mar 2016, 14:52
Perfil
Google employee
Google employee

Data de registro: 17 Jul 2011, 11:55
Mensagens: 2657
Localização: São Paulo
Mensagem Re: [Mini Tuto] Singleton - compartilhando dados
teteus escreveu:
Uma duvida que eu tenho é porque nao usar o IntentFotResult ou ate mesmo um BD ao invés de Singleton. Quando um Singleton seria melhor ?


Quando você tem várias alternativas de solução, procure uma que mais se adapte à sua necessidade, considerando aspectos positivos e negativos de cada uma.

_________________
Abraços
___________
Novo App: CalcMat - Calculadora de materiais para concreto
Blog: Agorandroid - sobre programação Android
Twitter: @Agorandroid
___________
Campanha: Facilite sua vida e a dos outros usuários
Cuide do ciclo de vida do seu tópico:
no onCreate(): seja claro, se necessário poste o código e as mensagens de erro.
no onClick(): responda às sugestões.
no onStop(): evite "ninguém?", "alguém?", etc. Procure acrescentar alguma nova informação.
no onDestroy(): resolvido o assunto, poste imediatamente a solução, e, coloque no título do primeiro post [Resolvido].


14 Mar 2016, 15:07
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 48 Mensagens ] 

Quem está online

Usuários vendo este fórum: abruzzi, Alan Unger, alex.abrantes, Alexandre de Queiroz, alexandreufcg, alexcost2002, allart, andrewort, Androidthebest, bbourbon, beeshop, Biggs Darklighter, BloggerCaOS, BMaia, brazucx, Brunohc, btminzon, caciara, carlos rodrigues, carminati, Cassius, Celso Jr., cesschneider, cfranca, Chassot, Chewbacca, CKorneLL, claudio, claudioalfonso, Costa, Cr-Informática, culumin, danilosv, Darth Maul, Darth Plagueis, Darth Sidious, dchechetto, Diego, diegorrborges, diogeneskelsen, dreyer, edsonel, eluttner, Emanuella, emersonbarros, everaldo, faco, fcoroa, FelipeOliveira, ferrodecaju, Flavio Alves, francismarconcini, freina, geco, glmsistemas, Gomes, Google Desktop, Governador Wilhuff Tarkin, Guilherme Cobain, gutodias, hebert, helder84, heliopassos, hellbest, henrique.cardoso, ismavolk, ixian, j-menezes, Jaison, Jalerson, jhou, joaquimfoto, Josinhaz, juliomar, Juninhooooo, jzaires, Katia, kristopher, laucode, leandroviana, leoadias, Leonardo333, lfalcao, lillian.brandao, Lincoln, linukiss, lucasmadeira, luizcesar, luizcyber, m4v0, mam_computer, marcelochiquinho, MarceloMC, MARCIOHG, Maxtremus, memnoch, mendes_lu, Michel, MSPRAFAEL, Mvitor, NeruLL, nglaubervasc, nightwatch, nivea, nq6, obitow, pamonteiro, Patricia, paulanegreiros, paulo.esantos, peixe, persiomotta, pgbatera, phsantos, Qui-Gon Jinn, Rafael, Rafael Alencar, rafael.cioban, ramonrabello, raninhofernandes, rcotonet, renegheller, ricdigital, rlecheta, robsonoracle, RodReis, rotilho, Rufino, Samuka, sasuke_sarutobi, shazaum, silvio.carlos, sjta, skcratch, Snappy [Bot], sobrinho, tavares767, thienne, ThiMatsu, tiagocomerio, tirloni, vaniuz, Wookiees, xikin, YaCy, zaquiel 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

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi