Campo busca em listview

Uso uma listview para fazer consulta com nome de clientes , gostaria de colocar um campo para buscar os nomes, como posso fazer isso?

Teus dados vem do banco? Tá usando um SimpleCursorAdapter?

Caso afirmativo, você pode refazer a consulta em cada busca. O CursorAdapter tem um método chamado changeCursor. Então, após você refazer a consulta, pode utilizá-lo:

adapter.changeCursor(novoCursor);

Sik, vem do banco mas não estou usando SimpleCursorAdapter. Segue código

[code]public class ConSeg extends ListActivity{
String [] listaUsuarios;// = new String[10];

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        buscaUsuarios();
 }
 
 protected void buscaUsuarios() {
	 int posicao=0;
		String url="http://10.0.2.2/madi/consultarSeg.php";			
		String respostaRetornada = null;
		try {
			respostaRetornada = ConecxaoMysql.executaHttpGet(url);
			String resposta = respostaRetornada.toString();
			
			char separadaror='#';
			int contaUsuarios=0;
			for(int i=0;i<resposta.length();i++)
				if(separadaror == resposta.charAt(i))
					contaUsuarios++;
			
			listaUsuarios = new String[contaUsuarios];
			
			char caracter_lido=resposta.charAt(0);
			String nome="";
			for (int i=0;caracter_lido != '^';i++)
			{
				caracter_lido = resposta.charAt(i);
				if (caracter_lido != '#')
					nome+= (char) caracter_lido;
				else
				{ 
					listaUsuarios[posicao]=""+nome;
					posicao++;
					nome="";
				}
			}
			
		}
		catch(Exception erro)
		{
			Log.i("erro", "erro = "+erro);				
		}
		
        	       
        ArrayAdapter<String> aaCursos = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listaUsuarios);
        setListAdapter(aaCursos);
 }

	   public void mensagemExibir(String titulo, String texto)
	   {
			AlertDialog.Builder mensagem = new AlertDialog.Builder(ConSeg.this);
			mensagem.setTitle(titulo);
			mensagem.setMessage(texto);
			mensagem.setNeutralButton("OK",null);
			mensagem.show();
	   }

}
[/code]

Nesse caso você pode apenas chamar setTextFilterEnabled(true) no listView e digitar alguma coisa, ele automaticamente filtra.

[quote=wsm]Sik, vem do banco mas não estou usando SimpleCursorAdapter. Segue código

[code]public class ConSeg extends ListActivity{
String [] listaUsuarios;// = new String[10];

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        buscaUsuarios();
 }
 
 protected void buscaUsuarios() {
	 int posicao=0;
		String url="http://10.0.2.2/madi/consultarSeg.php";			
		String respostaRetornada = null;
		try {
			respostaRetornada = ConecxaoMysql.executaHttpGet(url);
			String resposta = respostaRetornada.toString();
			
			char separadaror='#';
			int contaUsuarios=0;
			for(int i=0;i<resposta.length();i++)
				if(separadaror == resposta.charAt(i))
					contaUsuarios++;
			
			listaUsuarios = new String[contaUsuarios];
			
			char caracter_lido=resposta.charAt(0);
			String nome="";
			for (int i=0;caracter_lido != '^';i++)
			{
				caracter_lido = resposta.charAt(i);
				if (caracter_lido != '#')
					nome+= (char) caracter_lido;
				else
				{ 
					listaUsuarios[posicao]=""+nome;
					posicao++;
					nome="";
				}
			}
			
		}
		catch(Exception erro)
		{
			Log.i("erro", "erro = "+erro);				
		}
		
        	       
        ArrayAdapter<String> aaCursos = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listaUsuarios);
        setListAdapter(aaCursos);
 }

	   public void mensagemExibir(String titulo, String texto)
	   {
			AlertDialog.Builder mensagem = new AlertDialog.Builder(ConSeg.this);
			mensagem.setTitle(titulo);
			mensagem.setMessage(texto);
			mensagem.setNeutralButton("OK",null);
			mensagem.show();
	   }

}
[/code][/quote]

Cara é muito simples, basta você passar o filtro como parâmetro via querystring pro PHP, a seguinte linha que tá assim;

É só você colocar tipo assim;

Lá no PHP você vai simplesmente pegar o parâmetro pelo método GET tipo;

E vai adicionar uma cláusula WHERE no seu SQL lá dentro do PHP, comparando o campo que você quer com o valor do parâmetro que você passou pela URL, simples, dessa forma você não precisa carregar todos os registros da tabela pra depois filtrar, se a sua tabela tiver 1 milhão de registros(ou muito menos do que isso já é necessário), a sua aplicação vai travar se tentar carregar todos os registros pra depois filtrar.
Eu tô precisando de uma ajuda de alguém aqui é pra usar essa mesma metodologia que você tá usando de carregar o listview de um XML só que em uma activity normal pois essa minha activity tem além do listview, um TextView, um EditText e um botão, usando ListActivity não funciona e eu não sei porque já que não sou tão catedrático em Android e não acho informação nenhuma em lugar nenhum.

wagnerfrancisco, como que uso esse metodo que vc postou ai com o CursorAdapter? Eu preciso fazer um filtro na listview. O AutoCompleteTextView seria uma boa? Os dados vem do SQLite.

Eu uso um BaseAdapter

wagnerfrancisco,

Precisava falar com vc, poderia me ajudar?

frederico.brigatte@gmail.com