Telas no Android

11 respostas
ricardo_batista_alme

Galera boa tarde:
1º ) Alguém sabe como eu mato uma tela quando chamo outra , ou seja finalizar uma Activity quando chamo outra.
2º ) E como eu chamo outra tela que ja esta criada.

Seria assim : TelaMenuPrincipal tem um botão listar que chama uma ListActivity ,depois clico em um item da lista e chama uma impressão quando finalizar a impressão
volta para a TelaMenuPrincipal ,e a ListActivity não pode existir mais.

11 Respostas

Metaleiro

Chamando outra tela com menus

DESENVOLVER PARA ANDROID: CHAMANDO ACTIVITY?S

V

só da um finish();

Marky.Vasconcelos

Voce pode dar um startActivity na ListActivity e logo em seguida dar finish() para tirar essa da stack, quando voltar da terceira tela vai cair na primeira.

Também, existem opções no Intent que adicionam um Activity na tela sem coloca-la na stack, dai quando ir para outra ja nem volta mais para esta, só não sei direito como fazer isso olha as flags da classe Intent.

V

É como marky disse, me passei por que não sabia que a parte da impressão seria outra tela :stuck_out_tongue:

ricardo_batista_alme

Com o finish() funcionou blz, mais agora tenho uma duvida.
Exemplo: tenho a tela1 ,tela2,tela3, tela4 .
Se eu estou na tela4 e quero retornar para a tela1 tem como chamar esta tela , por que se da tela4 eu fizer assim : Intent t = new Intent(getBaseContext(), Tela1.class);
é criado uma nova tela1 e não é a mesma ,então tem como chamar a mesma tela1 que foi criada la atraz.

V

só da finish() até chegar a tela um, usando o StartActivityResult como marky falou.

ricardo_batista_alme

Acho que não expliquei direito, não é retornar para a tela um e sim chamar a tela1 pra frente colocar ela como primeira tela novamente

V

e então.

tela 1 chama tela 2, que chama tela 3, que chama tela 4.

na pilha

tela4
tela3
tela2
tela1

então vc fecha todas até a um, tem como fazer isso usando ActivityResult, eu creio que é o unico jeito.

Marky.Vasconcelos

Quando voce da finish() numa Activity e a aplicação volta uma atrás na stack voce vai ter a mesma instancia que estava lá.

ricardo_batista_alme

Consegui resolver , quem quiser usar segue codigo.

Intent t = new Intent(getBaseContext(), MenuInicio.class);
t.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

detalhe existe outras constantes na classse Intent que podem ser usadas de acordo com a sua necessidade.

ricardo_batista_alme

Obrigado a todos os envolvidos, esta solucionado conforme descrito.

Criado 13 de novembro de 2012
Ultima resposta 19 de nov. de 2012
Respostas 11
Participantes 4