Criar lista de títulos em aberto por cliente (ExpandableListView)

06/05/2018

0

Preciso criar uma lista de clientes x títulos vencidos e jogar no ExpandableListView, o problema que está acontecendo é que se tenho 3 clientes cada um com 1 título em aberto está mostrando os 3 títulos pra todos os 3 clientes, sei que o motivo é no preenchimento do HashMap<String, List<TitulosVencidos>> titulosvencidos. Segue o código.

public class ListaTitulosVencidos extends AppCompatActivity implements
// SearchView.OnQueryTextListener,
MenuItemCompat.OnActionExpandListener{

HashMap<String, List<TitulosVencidos>> titulosvencidos;
List<String> clientes;
List<TitulosVencidos> titulos;
TitulosVencidosAdapter adapter;
ProgressBar mProgressBar;
String auxcli;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tela_titulos_vencidos);

clientes = new ArrayList<String>();
titulosvencidos = new HashMap<String, List<TitulosVencidos>>();
ExpandableListView listView = (ExpandableListView)findViewById(R.id.titulosvencidos);

mProgressBar = (ProgressBar) findViewById(R.id.progressBar);

adapter = new TitulosVencidosAdapter(this, clientes, titulosvencidos);

listView.setAdapter(adapter);

new RelacaoClientesVencidos().execute();


@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}

@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
return true;
}

private void exibirProgress(boolean exibir){
mProgressBar.setVisibility(exibir ? View.VISIBLE : View.GONE);
}

protected class RelacaoClientesVencidos extends AsyncTask<Void, JSONObject, ArrayList<ClientesVencidos>> {
ArrayList<ClientesVencidos> deptTable = null;

@Override
protected void onPreExecute(){
super.onPreExecute();
exibirProgress(true);
}

@Override
protected ArrayList<ClientesVencidos> doInBackground(Void... params) {
// TODO Auto-generated method stub

RestAPI api = new RestAPI();
try {
JSONObject jsonObj = api.RelacaoClientesVencidos(username);

JSONParser parser = new JSONParser();

deptTable = parser.parseClientesVencidos(jsonObj);

} catch (Exception e) {
// TODO Auto-generated catch block
Log.d("RelacaoClientesVencidos", e.getMessage());

}

return deptTable;
}

@Override
protected void onPostExecute(ArrayList<ClientesVencidos> result) {
// TODO Auto-generated method stub

titulos = new ArrayList<TitulosVencidos>();

for (int i = 0; i < result.size(); i++) {

clientes.add(result.get(i).getCod_cliente() + "-" + result.get(i).getCliente());
auxcli = result.get(i).getCod_cliente();

new RelacaoTitulosVencidos().execute();

titulosvencidos.put(clientes.get(i), titulos);
}

adapter.notifyDataSetChanged();
exibirProgress(false);
}

}

protected class RelacaoTitulosVencidos extends AsyncTask<Void, JSONObject, ArrayList<TitulosVencidos>> {
ArrayList<TitulosVencidos> deptTable = null;

@Override
protected void onPreExecute(){
super.onPreExecute();
}

@Override
protected ArrayList<TitulosVencidos> doInBackground(Void... params) {
// TODO Auto-generated method stub

RestAPI api = new RestAPI();
try {
JSONObject jsonObj = api.RelacaoTitulosVencidos(auxcli);

JSONParser parser = new JSONParser();

deptTable = parser.parseTitulosVencidos(jsonObj);

} catch (Exception e) {
// TODO Auto-generated catch block
Log.d("RelacaoTitulosVencidos", e.getMessage());

}

return deptTable;
}

@Override
protected void onPostExecute(ArrayList<TitulosVencidos> result) {
// TODO Auto-generated method stub

for (int i = 0; i < result.size(); i++) {
titulos.add(new TitulosVencidos(result.get(i).getNum_docto(), result.get(i).getData_emissao(),
result.get(i).getData_vencto(), result.get(i).getCod_vendedor(),
result.get(i).getCod_cliente(), result.get(i).getCliente(),
result.get(i).getValor_saldo(), result.get(i).getDias()));
}
}

}
}
Jefferson Lima

Jefferson Lima

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar