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