DESENVOLVER PARA ANDROID: CHAMANDO ACTIVITY’S.

Por enquanto, nossos exemplos estão apenas chamando Toast’s. Mas nem só de Toast’s viverão as nossas aplicações: precisamos chamar outras Activity’s para tratar outras telas. Dessa forma, será possível navegar entre elas.

É bem simples:  temos a Activity que controlará as ações da tela, e um novo AndroidXML que será a nova tela.

Em seguida, bastará fazer com que o clique no menu “Ir pra outra tela” chame o método startActivity(…), passando como argumento um Intent : uma intenção de ir para outra Activity. O Intent precisará receber o objeto de contexto atual(this) e a classe que controla a tela para onde queremos ir.

startActivity(new Intent(this, NovaActivity.class));

novapagina.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">

 <TextView android:text="@string/new_page" android:id="@+id/text"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content">
 </TextView>
</LinearLayout>

Fazendo um retrô da classe Main.java


public class Main extends Activity {
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 String[] listaDeNomesASeremListados = {"Yuri","Adams","Chaves","Maia"};
 ListView listView = (ListView) findViewById(R.id.lista);
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listaDeNomesASeremListados);
 listView.setAdapter(adapter);

 listView.setOnItemClickListener(new OnItemClickListener() {

 @Override
 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
 long arg3) {
 Toast.makeText(Main.this, "você clicou no evento de clique simples!", Toast.LENGTH_LONG).show();

 }
 });

 listView.setLongClickable(true);
 listView.setOnItemLongClickListener(new OnItemLongClickListener() {

 public boolean onItemLongClick(AdapterView<?> adapter, View view,
 int posicao, long id) {
 Toast.makeText(Main.this, "você clicou no evento de clique longo!", Toast.LENGTH_LONG).show();
 return false;//toda chamada background continuar rodando se for false.
 }

 });
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 MenuItem novo = menu.add(0,0,0,"Ir pra outra tela");
 novo.setIcon(R.drawable.novo);

 return super.onCreateOptionsMenu(menu);
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 if(item.getItemId() == 0){
 startActivity(new Intent(Main.this, NovaPagina.class));
 }
 return super.onOptionsItemSelected(item);
 }
}

E NÃO esquecer de registrar a Activity no AndroidManifest.xml


<activity android:name=".NovaPagina"
 android:label="Nova Página">
 </activity>

Só testar..

7 Responses to DESENVOLVER PARA ANDROID: CHAMANDO ACTIVITY’S.

  1. Alex says:

    Muito bom… Minha aplicação estava dando problema sempre, em vários exemplos que vi, e o problema era porque não estava registrando a Activity no AndroidManifest.xml. Muito obrigado

  2. Yuri seu blog esta muito bom, me deu uma base muito boa para montar meu helloworld.

    Mas como sou newbie demorei um pouco para saber que tenho de importar os pacotes abaixo:

    import android.widget.*;
    import android.view.*;

    Ou talvez faltou colocar alguma configuração antes.

    Valew kara, estou fazendo todos seus posts.
    Dimitri Vargas Figueiredo Guimarães

  3. Bruno Henrique de Sousa says:

    Olá Yuri, seguinte o meu problema é que quando eu clico normal o toast apresenta corretamente:
    você clicou no evento de clique simples!

    mas quando eu faço o longClick aparece as duas mensagem
    seguidas:

    você clicou no evento de clique longo!
    você clicou no evento de clique simples!

    Teria como me dar um Help

    abração.

    • Yuri Adams says:

      Cara, tenta mudar o retorno do método onItemLongClick. Se eu não me engano o retorno está “FALSE”. Tu muda pra “TRUE”.

      Não sei o motivo, mas quando o projeto que tu criou é mais recente que a versão 2.1, que é a versão desse tutorial, o comportamento desse método mudou.

      Não tenho certeza se é isso mas tente ai e manda um retorno…

      Blz? Abração cara, desculpe a demora por responder..

      • Bruno Henrique de Sousa says:

        Isso mesmo é mudar pra TRUE mesmo… eu havia achado mas esqueci de mandar o post.

        Mas muito obrigado mesmo

        Capaz não esquenta não,,,

        abração

Deixar mensagem para Alex Cancelar resposta