O que é um "pacote" em uma aplicação Android

O que é uma bundle numa aplicação Android? Quando usá-lo?

Author: Fllo, 2011-02-15

12 answers

Pacotes são geralmente usados para passar dados entre várias actividades Android. Depende de você que tipo de valores você quer passar, mas pacotes podem manter todos os tipos de valores e passá-los para a nova atividade.

Podes usá - lo assim:

Intent intent = new...
Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", AnyValue);  
startActivity(intent);

Você pode obter os valores passados fazendo:

Bundle extras = intent.getExtras(); 
String tmp = extras.getString("myKey");

Você pode encontrar mais informações em:

 245
Author: samtherock, 2016-08-08 21:27:14
Tenho de acrescentar que os pacotes são usados pelas actividades para passar dados a si próprios no futuro.

Quando a tela gira, ou quando outra atividade é iniciada, o método {[[0]} é invocado, e a atividade é destruída. Mais tarde, outro exemplo da atividade é criado, e public void onCreate(Bundle savedInstanceState) é chamado. Quando a primeira instância de atividade é criada, o pacote é nulo; e se o pacote não é nulo, a atividade continua alguns negócios iniciados por seu antecessor.

Andróide grava automaticamente o texto em campos de texto, mas ele não grava tudo, e bugs subtis às vezes aparecem.

O anti-padrão mais comum, no entanto, é assumir que onCreate() faz apenas inicialização. É errado, porque também tem de restaurar o estado.

Existe uma opção para desactivar este comportamento de "recriar actividade na rotação", mas não impedirá erros relacionados com o reinício, apenas os tornará mais difíceis de mencionar.

Note também que o único método a chamada é garantida quando a atividade vai ser destruída é onPause(). (See the activity life cycle graph in the docs.)

 63
Author: 18446744073709551615, 2012-05-31 12:24:38

Passar os dados entre as actividades usando os objectos Bundle e Intent.


O primeiro a criar um objecto Bundle

Bundle b = new Bundle();

Então, associe os dados de texto armazenados em anystring com a chave do pacote "myname"

b.putString("myname", anystring);
Agora, crie um objeto Intent
Intent in = new Intent(getApplicationContext(), secondActivity.class);

Passe o objecto do feixe b para a intenção

in.putExtras(b);

E iniciar a segunda actividade

startActivity(in);

Na segunda actividade, temos de aceder aos dados transmitidos a partir da primeira. actividade
Intent in = getIntent();
Agora, precisas de obter os dados do pacote.
Bundle b = in.getExtras();

Finalmente, obter o valor dos dados de texto associados com a chave chamada "myname"

String s = b.getString("myname");
 57
Author: mahalakshmi, 2015-06-20 23:43:27

A Bundle é muito parecido com um objecto Java Map que mapeia String as chaves dos valores. É usado para passar informações entre atividades e outros componentes de Aplicação. Também é usado pelo framework para capturar e restaurar informações do estado.

A razão pela qual o Android não usa objetos antigos Map para isso é que Map é muito flexível; ele pode conter objetos (como, por exemplo, fluxos de E/S) que não podem ser serializados. A API Bundle restringe os tipos de objectos que podem ser adicionados a um bundle de tal forma que o conteúdo do pacote é garantido para ser serializável. A estrutura Android depende desta propriedade.

Sugiro que leia a documentação sobre os fundamentos da aplicação . Isto explica, entre outras coisas, quais são os pacotes e intenções e para que são usados.

 31
Author: Ted Hopp, 2016-12-20 21:38:39

Pacotes podem ser usados para enviar dados arbitrários de uma actividade para outra através de tentativas. Quando você transmitir uma intenção, as atividades interessadas (e outros apreciadores de radiodifusão) serão notificados disso. Uma intenção pode conter um pacote para que você possa enviar dados extras junto com a intenção.

Os pacotes são mapeamentos de valor-chave, por isso, de certa forma, são como um Hash, mas não estão estritamente limitados a uma única cadeia / mapeamento de objectos Foo. Note - se que apenas certos tipos de dados são considerados "Parceláveis"e são explicitamente explicados na API do feixe.

 14
Author: scriptocalypse, 2011-02-15 04:57:20

Cria apenas um pacote,


Bundle simple_bundle=new Bundle();
simple_bundle.putString("item1","value1");
Intent i=new Intent(getApplicationContext(),this_is_the_next_class.class);
i.putExtras(simple_bundle);
startActivity(i);

Na " this_ is_the_next_class.classe "

Podes recuperar os itens assim.
Intent receive_i=getIntent();
Bundle my_bundle_received=receive_i.getExtras();
my_bundle_received.get("item1");
Log.d("Value","--"+my_bundle_received.get("item1").toString);
 7
Author: Bala Prasanna, 2014-02-12 04:52:55

O pacote é utilizado para transmitir dados entre actividades. Você pode criar um pacote, passá-lo para a intenção que inicia a atividade que, em seguida, pode ser usado a partir da atividade de destino.

 5
Author: GSree, 2011-02-15 04:55:08

Pacote:- Um mapeamento de valores de String para vários tipos Parceláveis.

O pacote é geralmente usado para passar dados entre várias actividades do android.

([1]} Quando nós chamamos onPause (), em seguida, onStop() e, em seguida, em ordem inversa onStop () para onPause ().

Os dados salvos que o sistema usa para restaurar o estado anterior são chamados de "Estado de instância" e é uma coleção de pares de valores-chave armazenados em um objeto de pacote.

 3
Author: Ahmed Ali, 2015-08-16 17:26:38

O pacote é utilizado para partilhar dados entre actividades , e para salvar o estado do aplicativo no método oncreate() de modo que o aplicativo virá a saber onde foi parado ... Espero que ajude.

 2
Author: Sandip Lawate, 2013-07-29 10:52:32

Uso do pacote enviar dados de uma actividade para outra actividade com a ajuda de objecto de intenção; Pacote manter os dados que podem ser de qualquer tipo.

Agora digo - lhe como criar um feixe de dados a passar entre duas actividades.

Passo 1: na primeira actividade

Bundle b=new Bundle();

b.putString("mkv",anystring);

Intent in=new Intent(getApplicationContext(),secondActivity.class);

in.putExtras(b);

startActivity(in);

Passo 2: Na Segunda Actividade

Intent in=getIntent();

Bundle b=in.getExtras();

String s=b.getString("mkv");
Acho que isto é útil para ti...........
 0
Author: Mahendra Kumar Verma, 2015-04-09 10:38:16

O pacote não é apenas para transferir dados entre dois componentes diferentes, mas, mais importante, é usado para restaurar os valores armazenados antes da actividade ser destruída para uma nova actividade.

Tal como o texto num elemento EditText ou a posição de posicionamento de um ListView.

 0
Author: Ajay Takur, 2015-06-18 15:36:22

Primeira actividade:

String food = (String)((Spinner)findViewById(R.id.food)).getSelectedItem();
RadioButton rb = (RadioButton) findViewById(R.id.rb);
Intent i = new Intent(this,secondActivity.class);
i.putExtra("food",food);
i.putExtra("rb",rb.isChecked());

Segunda actividade:

String food = getIntent().getExtras().getString("food");
Boolean rb = getIntent().getExtras().getBoolean("rb");
 0
Author: Cooper, 2016-12-21 21:26:58