OnItemClickListener does not work when you click a search client.
Hello. I have a screen that is a ListActivity, when I open it, it brings the clients perfectly from the database, running the OnScrollListener and also OnItemClickListener.
However on the same screen there is an edittext for search; so when I do the search, it brings the normal client, the problem is that the OnItemClickListener does not work when clicking on a search client.
public class Lista_Clientes extends ListActivity implements OnClickListener, OnScrollListener {
...
@Override
public void onCreate(Bundle savedInstanceState) {
...
preencherclientes
getListView().setOnScrollListener(this);
}
//Esse método está funcionando normal ao clicar em cliente que não tiver sido pesquisado
//No entanto ao pesquisar ele não funciona mais.
@Override
protected void onListItemClick(ListView l,View v,int position,long id){
super.onListItemClick(l, v, position, id);
Cliente cliente = (Cliente) this.getListAdapter().getItem(position);
if (RetornaResultado) {
adicionaResultado(String.valueOf(cliente.getIDcli()));
} else {
Intent i = new Intent(this, Act_ConsultaCliente.class);
Act_ConsultaCliente.mCodCliente = String.valueOf(cliente.getIDcli());
startActivity(i);
}
}
public void preencherclientes(int mais, boolean usaFiltro) {
String limite = " LIMIT 20 OFFSET "+mais+"";
//String sAux = "";
if (!(mSpoApp.getManager().getConfiguracaoAparelhoVendedor(1) == null))
sAux = " and _id in (select idcli from clienterotavendedor where idrot = (select rota_id from configuracaoaparelhovendedor))";
if (!usaFiltro) {
listCliente.addAll(mSpoApp
.getManager()
.getClienteDao()
.getAllbyClause("1=1 "+sAux+" order by nome "+limite,null,null, null,null));
} else {
listCliente = mSpoApp.getManager().getClienteDao().getAllbyClause("1 = 1 " + sAux +
" and nome like '%" + mEdtFiltro.getText().toString() + "%' " +
"or (fantasia like '%" + mEdtFiltro.getText().toString()+"%') " +
"or (cpf like '%" + mEdtFiltro.getText().toString()+"%') " +
"or (cnpj like '%" + mEdtFiltro.getText().toString()+"%') " +
"or (_id = '" + mEdtFiltro.getText().toString() + "') order by nome " + limite,null,null, null,null);
}
mClientesAdapter = new Adapter_ListaClientes(Lista_Clientes.this, listCliente);
setListAdapter(mClientesAdapter);
}
public void adicionarclientes(int mais) {
String limite = " LIMIT 20 OFFSET "+mais+"";
String sAux = "";
if (!(mSpoApp.getManager().getConfiguracaoAparelhoVendedor(1) == null))
sAux = " and _id in (select idcli from clienterotavendedor where idrot = (select rota_id from configuracaoaparelhovendedor))";
listCliente.addAll(mSpoApp
.getManager()
.getClienteDao()
.getAllbyClause("1=1 "+sAux+" order by nome "+limite,null,null, null,null));
mClientesAdapter.notifyDataSetChanged();
}
@Override
public void onScroll(AbsListView view, int primeiroItemVisivel,
int quantidadeDeItensVisiveis, int totalDeItensNoAdapter) {
if(primeiroItemVisivel + quantidadeDeItensVisiveis >= totalDeItensNoAdapter - 0) {
adicionarclientes(totalDeItensNoAdapter);
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
//
}