Jogo da Forca Tutorial Pong Tutorial SQLite
Mostrando postagens com marcador ListView. Mostrar todas as postagens

ListView - Pesquisa

Boa noite!

Uma outra coisa que pode ser feita com a listagem, é colocar um EditText no layout, para que os itens possam ser achados mais facilmente quando a lista é muito grande.
Para isso, é preciso que o arquivo main.xml seja alterado, ficando desta forma:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <EditText
        android:id="@+id/eText"
        android:hint="Pesquisar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" />
    <ListView
        android:id="@+id/lView"
        android:layout_below="@id/eText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</RelativeLayout>

Agora, nossa aplicação deixa de extender ListActivity e passa a extender a Activity, conforme abaixo:
package br.com.blogspot.androidandrekunde.listview;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

public class MainActivity extends Activity {

    private String[] lstFrutas;
    private ListView lView;
    private EditText eText;
    private ArrayList<String> pesquisa = new ArrayList<String>();

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

        // Declarando os objetos do main.xml
        lView = (ListView) findViewById(R.id.lView);
        eText = (EditText) findViewById(R.id.eText);

        lstFrutas = new String[] { "Abacate", "Abacaxi", "Banana", "Carambola",
          "Goiaba", "Jabuticaba", "Laranja", "Maçã", "Melancia", "Morango" };

        lView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lstFrutas));

        // Função responsável pela pesquisa
        Pesquisar();

        eText.addTextChangedListener(new TextWatcher() {

            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
            }

            public void beforeTextChanged(CharSequence arg0, int arg1,
                    int arg2, int arg3) {
                // TODO Auto-generated method stub
            }

            public void onTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                Pesquisar();

                lView.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, pesquisa));
            }
        });
    }

    public void Pesquisar() {
        int textlength = eText.getText().length();
        pesquisa.clear();

        for (int i = 0; i < lstFrutas.length; i++ ) {
            if (textlength <= lstFrutas[i].length()) {
                if (eText.getText().toString().equalsIgnoreCase((String)lstFrutas[i].subSequence(0, textlength))) {
                    pesquisa.add(lstFrutas[i]);
                }
            }
        }
    }
}


Foi adicionado a função Pesquisar(), que é responsável por verificar a lista e retornar somente os valores que coincidirem com o que estiver sendo digitado.
Bom, acho que este post ficou bem comentado no código já.
Tem também a função addTextChangedListener junto com o TextWatcher. É aí que é verificado quando alguma coisa é digitada no EditText, e sempre que isso acontece, é chamada a função de pesquisar que, por sua vez, atualiza a lista sempre que algum caracter for digitado.
E este é o resultado do app acima:



Até o próximo post e qualquer dúvida é só postar aí!
Clique aqui para baixar este projeto.

ListView - Multipla escolha

Boa noite!

Aproveitando a listagem anterior, vamos transformar aquela listagem simples em uma listagem de múltipla escolha.
Para isso vamos fazer algumas pequenas alterações em nosso código.
package br.com.blogspot.androidandrekunde.listview;

import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

    private String[] lstFrutas;
    ListView lView;

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

        lstFrutas = new String[] { "Abacate", "Abacaxi", "Banana", "Carambola",
          "Goiaba", "Jabuticaba", "Laranja", "Maçã", "Melancia", "Morango" };

        // Alterando o tipo da lista para simple_list_item_checked
        this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, lstFrutas));

        lView = getListView();

        // Ativando a seleção de mais de um item na lista
        lView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
 
        String selecionadas = "";

        // Este for vai percorrer toda a lista sempre
        // que houver um click
        for (int i = 0; i < lView.getCount(); i++) {

            // Esta condição verifica se o item está checado
            if (lView.isItemChecked(i) == true) {

             if (selecionadas.equals("")) {
                 selecionadas += lstFrutas[i];
             } else {
                    selecionadas += ", " + lstFrutas[i];
             }
            }
        }
   
        Toast.makeText(this, "Fruta(s) escolhida(s): " + selecionadas, Toast.LENGTH_SHORT).show();
    }
}


Bom, acho que este post ficou bem comentado no código já.
Até o próximo post e qualquer dúvida é só postar aí!

ListView

Boa tarde!

Depois de um longo tempo ausente, vou mostrar neste post o básico para se fazer um listview.

package br.com.blogspot.androidandrekunde.listview;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

    private String[] lstFrutas;

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

        lstFrutas = new String[] { "Abacate", "Abacaxi", "Banana", "Carambola",
          "Goiaba", "Jabuticaba", "Laranja", "Maçã", "Melancia", "Morango" };

        this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lstFrutas));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id)
    {
        super.onListItemClick(l, v, position, id);
 
        Object o = this.getListAdapter().getItem(position);
        String lstFrutas = o.toString();
   
        Toast.makeText(this, "Fruta escolhida: " + lstFrutas, Toast.LENGTH_SHORT).show();
    }
}

Para esse exemplo de listagem simples, não é preciso que seja criado um layout (xml).

Segue resultado da listagem:



Espero ter tempo para continuar este exemplo, demonstrando outras formas de listagens possíveis, inclusive criando uma listagem apartir de um banco de dados SQLite.
Copyright © 2013 Aprendendo Android and Blogger Themes.