"Verschachtelter" Android Asynchronous Http Client

  • Antworten:0
René Maas
  • Forum-Beiträge: 1

10.05.2013, 13:05:55 via Website

Hallo Android Devs,

ich nutze loopj.com/android-async-http um Daten von einer REST API zu holen und diese in ein ListView einzufügen, was wunderbar funktioniert.

Aber ich brauche noch ein paar Information von der API. Statt
1map.put("company", xmlParser.getValue(e, "CUSTOMER_ID"));
möchte ich Daten aus dem zusätzlichen Request einfügen (Firmenname statt Kundennummer).

Allerdings gibt es da 2 Probleme:
  1. Die Requests sind asynchron
  2. Die Callback-Function kann, soweit ich weiß, nichts zurückgeben

Danke für eure Hilfe und Zeit.

1client.post(context, API_URL, httpEntity, CONTENT_TYPE, new AsyncHttpResponseHandler(){
2 @Override
3 public void onSuccess(String response) {
4 ListView entries;
5 ArrayList<HashMap<String, String>> invoiceList = new ArrayList<HashMap<String, String>>();
6 XmlParser xmlParser = new XmlParser();
7 Document doc = xmlParser.getDomElement(response);
8 NodeList nl = doc.getElementsByTagName("INVOICE");
9 for (int i = 0; i < nl.getLength(); i++) {
10 Element e = (Element) nl.item(i);
11 HashMap<String, String> map = new HashMap<String, String>();
12 map.put("amount", NumFormat.currency(xmlParser.getValue(e, ("TOTAL"))) + xmlParser.getValue(e, "CURRENCY_CODE"));
13 map.put("company", xmlParser.getValue(e, "CUSTOMER_ID"));
14 //map.put("company", xmlParser.getValue(e, "INVOICE_ID"));
15 map.put("payment", xmlParser.getValue(e, "PAID_DATE"));
16 map.put("due", xmlParser.getValue(e, "DUE_DATE"));
17 invoiceList.add(map);
18 }
19 InvoiceAdapter adapter = new InvoiceAdapter(getApplicationContext(), invoiceList, customFont);
20 entries = (ListView) findViewById(R.id.list_outgoing_invoices);
21 entries.setAdapter(adapter);
22 }
23
24 @Override
25 public void onFailure(Throwable e, String response) {
26 Hint.showHint(context, getString(R.string.error_receive_data), Hint.LONG);
27 }
28});

Antworten