Android criando um ListView

VEJA TAMBEM COMO CRIAR LISTVIEW PERSONALIZADO
http://helpdev.com.br/2012/01/23/android-criando-um-listview-personalizado/

Para criarmos um ListView. Devemos começar com o Layout.
Caso não saibam todo layout para android é definido por um arquivo XML…

Bem, então vamos criar um arquivo “item_list.xml” em /res/layout/
Este arquivo irá definir o tamanho do meu item no ListView.

Segue o codigo:

<?xml version="1.0" encoding="UTF-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="20sp"
android:padding="15dp"
/>

Após isto, crie uma classe no seu projeto que será responsavel pela gerencia do ListView, neste exemplo o nome dado foi “ListView.java”, a classe deverá extender ListActivity. Faça um Override no método onCreate.
Pronto a estrutura de sua classe está pronta segue abaixo um exemplo para mostrar uma pequena lista:

public class ListView extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String lista[] = new String[]{"Item - 1", "Item - 2", "Item - 3", "Item - 4"};

        setListAdapter(new ArrayAdapter(this, R.layout.item_list, lista));

        ListView listView = getListView();
        listView.setTextFilterEnabled(true);

        listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {
                Toast.makeText(getApplicationContext(), ((TextView) arg1).getText(), Toast.LENGTH_SHORT).show();
            }
        });

    }
}

Neste exemplo fizemos com que, quando um item seja clicado, exiba uma mensagem na tela com o nome do item, como na imagem de exemplo.

Para finalizar só devemos chamar este activity. Para isso devemos primeiramente configuar o arquivo Manifest.xml, por padrão seu manifest taria desta maneira:

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android>
     package="org.me.listviewbluetooth">
    <application>
        <activity android:name=".MainActivity" android:label="MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

Vamos adicionar um activity na tag application do xml:

	<!-- Nome da classe -->
        <activity android:name=".ListView"
                  android:label="ListViewActivity">
            <intent-filter>
		<!-- Nome de acessibilidade -->
                <action android:name="android.intent.action.LISTVIEW"/> 

                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

Pronto, agora para chamar sua lista basta fazer o seguinte comando:

startActivity(new Intent("android.intent.action.LISTVIEW"));

VEJA TAMBEM COMO CRIAR LISTVIEW PERSONALIZADO
http://helpdev.com.br/2012/01/23/android-criando-um-listview-personalizado/

Obrigado.
Guilherme Biff Zarelli.

Help DEV – Analista desenvolvedor Java / Android

http://helpdev.com.br/zarelli

16 thoughts on “Android criando um ListView

  1. Olá. Estou com uma dúvida. Imaginemos que tenho a primeira Listview. Ao clicar num item da listview quero que invoque da base de dados outra listview. Quando a nova listview aparece, quero que ao clicar num item novo da listview ele puxe outra listview da base de dados. Ou seja, são 3 niveis de listviews. Consegue ajudar-me?

    • Bom, não sei se seria tão complicado quanto parece ser, estou aprendendo ainda Android não sei muita coisa… Pensei em uma solução que não seria tão viavel (eu acho).
      1-Que seria em criar outras classes extendendo listactivity configural-o como no exemplo, e ao clicar chamar o activity que você quer. startActivity(new Intent(“android.intent.action.LISTVIEW2″)); (menos viavel. dependendo do uso e controle).

      2-Nesta mesma lista se vc percebeu eu trabalho com um array de String com os valores, como você notou tambem tem um metodo onClickListner implementado que atualmente esta mostrando uma mensagem atravez de um Toast. Minha ideia seria de quando clicar, no codigo onde exibe a mensagem, chamavar um método que preencheria um array com seus dados e depois daria um setListAdapter para preencher a mesma lista.

      as questões de niveis acho que seria o menos importante a sua lista na verdade é um ArrayAdapter, você só precisa de um vetor de informações para contruir um ArrayAdapter depois é só dar um setListAdapter para mostrar na tela ;)….

      Acho que com esse codigo de exemplo da pra tirar uma base legal.
      Qualquer coisa me manda um email que tento ajudar melhor “gbzarelli@gmail.com” ;

  2. Muito obrigado pela sua resposta. Já consegui resolver :) Já agora tenho mais duas questões: existe alguma maneira simples de exportar uma base de dados SQLite Android para um ficheiro XML? Existe alguma maneira simples de enviar esse ficheiro XML para um Web Service c#?

    Cumprimentos e mais uma vez obrigado :)

    • Então realmente não sei te dizer em Android uma maneira simples para exportar dados em um XML vou ficar te deveno essa, teria que dar uma pesquisada mesmo, no entanto montaria ele na mao mesmo com StringBuilder, para enviar para o web Service eu utilizo HttpURLConnection, monto meu objeto serializavel que teria o xml e enviaria ( ou so enviaria a String mesmo ). Segue um exemplo de comunicação em android:

      =============
      URL url = new URL(“http://192.168.0.22:8081/servlet”);
      HttpURLConnection http = (HttpURLConnection) url.openConnection();
      http.setRequestMethod(“POST”);
      http.setDoInput(true);
      http.setDoOutput(true);

      http.connect();

      ObjectOutputStream dos = new ObjectOutputStream(http.getOutputStream());

      dos.writeObject(obEnvio);// caso troque por string = dos.writeUTF(string);

      ObjectInputStream dis = new ObjectInputStream(http.getInputStream());

      obRetorno = (Serializable) dis.readObject(); //depende do retorno do webservice
      ===================

      Vlws..

    • Cara o conceito é o mesmo porem você tem que carregar seu vetor de itens pelo banco, crie um método que inicie o vetor nesse método você vai dar o select no banco e preencher a lista depois continue a execução da mesma forma, chame esse método aonde é criado os dados estaticos de acordo com o exemplo.

    • De uma olhada nesse post: http://zarelli.wordpress.com/2012/05/15/banco-de-dados-para-android/

      Mas resumindo o post aqui você tem um select simples:
      private void select() {
      //O cursor no android é similar ao ResultSet do Java
      Cursor cursor = banco.get().rawQuery(“select * from usuarios_tbl limit ?”, new String[]{“5″});
      while (cursor.moveToNext()) {
      Log.i(TAG_LOG, “id: ” + cursor.getInt(cursor.getColumnIndex(“id_usuarios”)));
      Log.i(TAG_LOG, “usuario: ” + cursor.getString(cursor.getColumnIndex(“usuario”)));
      Log.i(TAG_LOG, “senha: ” + cursor.getString(cursor.getColumnIndex(“senha”)));
      Log.i(TAG_LOG, “nomeCompleto: ” + cursor.getString(cursor.getColumnIndex(“nome_completo”)));
      Log.i(TAG_LOG, “——-”);
      }
      //Nunca esqueça de feixar o cursor.
      cursor.close();
      }

      é so você criar seu vetor e adicionando por possição a informação que desejar, ou crie um vetor dinamico (como um arrayList) e depois de adiconado os componentes transforme-o para um vetor simples com o metodo .toArray();
      É bem simples e muito basico… qualquer faça uma pergunta mais especifica para te ajudar.

      • tem um artigo de como eu posso recuperar essa lista do banco de dados como eu já disse estou usando o SQLite.

        Me ajude preciso muito desenvolver esse trabalho atéo dia 10 de fevereiro é simples, mas eu nunca vi Android a não ser pelo livro e é meu Trabalho de TCC.
        Grato.

  3. Que método eu utilizo para acessar um banco de dados?

    Eu tenho um banco de dados, e uns spinners instanciados, o que eu quero é um método, algum código que faça com que meu botão pesquisar mostre os resultados do banco. :) em uma ListView só que em outra tela

  4. Pingback: Think Different – Develop | Android criando um ListView

Deixe uma resposta para zebrazartur Cancelar resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>