Bom dia pessoal, tenho uma lista em uma tela usando um layout simples, conforme abaixo:
[code]<?xml version=“1.0” encoding=“utf-8”?>
<TableLayout xmlns:android=“http://schemas.android.com/apk/res/android"
android:layout_height=“fill_parent” android:layout_width=“fill_parent"
android:background=”#ffffff”>
<TableRow >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width=“fill_parent” android:layout_height=“wrap_content”
>
	<TextView android:id="@+id/valor"
		android:layout_height="30dip" android:layout_width="130sp"
	/>
	<TextView android:id="@+id/data"
		android:layout_height="30dip" android:layout_width="80sp"
	/>
</LinearLayout>
</TableRow>
</TableLayout>[/code]
[code]package br.com.clausoftware;
import java.text.ParseException;
import java.util.List;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;
import br.com.clausoftware.banco.BuscarReceita;
import br.com.clausoftware.banco.EditarReceita;
import br.com.clausoftware.banco.Receita;
import br.com.clausoftware.banco.RecetiaListAdapter;
import br.com.clausoftware.banco.RepositorioConta;
import br.com.clausoftware.banco.RepositorioContaScript;
public class CadastroReceita extends ListActivity {
static final int DATE_DIALOG_ID = 0;
protected static final int INSERIR_EDITAR = 1;
protected static final int BUSCAR = 2;
public static RepositorioConta repositorio;
private List<Receita> receitasList;
@Override
public void onCreate(Bundle icicle) {
	super.onCreate(icicle);
	repositorio = new RepositorioContaScript(this);
	try {
		atualizarLista();
		for(int i = 0; i< 2; i++){
		Toast.makeText(CadastroReceita.this, "Clique na Conta para editar, ou abra o menu para outras operações!", Toast.LENGTH_SHORT).show();
		}
	} catch (ParseException e) {
		e.printStackTrace();
	}
}
protected void atualizarLista() throws ParseException {
	// Pega a lista de contas e exibe na tela
	receitasList = repositorio.listarReceitas();
	// Adaptador de lista customizado para cada linha de um conta
	setListAdapter(new RecetiaListAdapter(this, receitasList));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
	super.onCreateOptionsMenu(menu);
	menu.add(0, INSERIR_EDITAR, 0, "Inserir Novo").setIcon(R.drawable.novo);
	menu.add(0, BUSCAR, 0, "Buscar").setIcon(R.drawable.pesquisar);
	return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
	// Clicou no menu
	switch (item.getItemId()) {
	case INSERIR_EDITAR:
		// Abre a tela com o formulário para adicionar
		startActivityForResult(new Intent(this, EditarReceita.class), INSERIR_EDITAR);
		break;
	case BUSCAR:
		// Abre a tela para buscar o conta pelo nome
		startActivity(new Intent(this, BuscarReceita.class));
		break;
	}
	return true;
}
@Override
protected void onListItemClick(ListView l, View v, int posicao, long id) {
	super.onListItemClick(l, v, posicao, id);
	editarRececetia(posicao);
}
// Recupera o id do conta, e abre a tela de edição
protected void editarRececetia(int posicao) {
	// Usuário clicou em algum conta da lista
	// Recupera a conta selecionado
	Receita receita = receitasList.get(posicao);
	// Cria a intent para abrir a tela de editar
	Intent it = new Intent(this, EditarReceita.class);
	// Passa o id do çonta como parâmetro
	it.putExtra("_id", receita.getId());
	// Abre a tela de edição
	startActivityForResult(it, INSERIR_EDITAR);
}
@Override
protected void onActivityResult(int codigo, int codigoRetorno, Intent it) {
	super.onActivityResult(codigo, codigoRetorno, it);
	// Quando a activity Editarconta retornar, seja se foi para adicionar vamos atualizar a lista
	if (codigoRetorno == RESULT_OK) {
		// atualiza a lista na tela
		try {
			atualizarLista();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}
@Override
protected void onDestroy() {
	super.onDestroy();
	// Fecha o banco
	repositorio.fechar();
}
}[/code]
[code]package br.com.clausoftware.banco;
import java.util.List;
import br.com.clausoftware.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
- Adapter customizado para exibir contas.
- @author claudemir
*/
public class RecetiaListAdapter extends BaseAdapter {
private Context context;
private List<Receita> lista;
public RecetiaListAdapter(Context context, List<Receita> lista) {
	this.context = context;
	this.lista = lista;
}
public int getCount() {
	return lista.size();
}
public Object getItem(int position) {
	return lista.get(position);
}
public long getItemId(int position) {
	return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
	// Recupera a Conta da posição atual
	Receita r = lista.get(position);
	LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	View view = inflater.inflate(R.layout.receita_linha_tabela, null);
	
	
	// Atualiza o valor do TextView
	TextView valor = (TextView) view.findViewById(R.id.valor);
	valor.setText(String.valueOf(r.getValor()));
	TextView data = (TextView) view.findViewById(R.id.data);
	data.setText(r.getData());
	
	return view;
}
}[/code]
Bom, agora eu precisa acrescentar um campo, em que o usuário vai entrar com a data, e então eu vou aplicar um “filtro”, e recarregr a “tela”, qual tecnica eu usaria? tentei colocar um campo fixo, mais da vários erros, eu acho que a abordagem deste adapter não é a indicada, mas não encontrei a
tecnica usada para ter um filtro e lista na mesma tela, alguém poderia me indicar o que uso?