Ich habe diese for
Schleife in einem AsyncTask
in meinem Code in der doInBackground
Methode erhalten:For-Schleife läuft zweimal aber ArrayAdapter darin nur das zweite Ergebnis
Object[] strings = prefItems.getStringSet("items", null).toArray();
for (int i = 0; i < strings.length; i++) {
DynamoDBScanExpression scan = new DynamoDBScanExpression();
Condition condition = new Condition()
.withComparisonOperator(ComparisonOperator.EQ)
.withAttributeValueList(new AttributeValue().withS(strings[i].toString()));
scan.addFilterCondition("id", condition);
List<Item> addedItems = dbMapper.scan(Item.class, scan);
ArrayList<Item> alp = new ArrayList<Item>();
for (Item item: addedItems) {
item.setName(item.getName());
item.setId(item.getId());
alp.add(item);
}
}
Auf der onPostExecute
Methode, die ich habe diesen Code:
ListView lv = (ListView) findViewById(R.id.listView);
ListViewAdapter adapt = new ListViewAdapter(MainActivity.this, alp);
lv.setAdapter(adapt);
Es gibt 2 Strings in strings
.
Der Code soll jede Zeichenfolge aus der Object[]
nehmen und nach einem gleichen Element in einer DynamoDB-Tabelle suchen. Aus irgendeinem Grund zeigt es Ergebnisse nur für das zweite Element im Array.
Ich habe versucht, die Elemente als einen Text zu zeigen, so als ich "das zweite Element im Array" schrieb, meinte ich in einer alphabetischen Reihenfolge, seit dem, wie es als String zeigt.
Entsprechend der Länge von strings
soll der Code nur 2 Mal ausgeführt werden. Wenn 10 und i = 1
, aber aus irgendeinem Grund läuft es nur wenn i = 1
, so zeigt es nur das zweite Element, und nicht auch das erste.
Ich dachte darüber nach, und ich denke, es hat etwas mit dem onPostExecute
Methodencode zu tun. Im Code benötigt man alp
als Adapter. Vielleicht hat es etwas damit zu tun?
Können Sie mir bitte helfen? Ich stehe seit über 3 Tagen mit diesem Problem fest und muss dieses Projekt am Ende der Woche beenden.
Wie kann ich alp
einstellen, um mehr als ein Element aus dem String-Array gleichzeitig zu enthalten?
Können Sie bestätigen, dass es tatsächlich Größe 2 ist? – Eenvincible
Ja. Ich habe es als Text für TextView gesetzt und ich habe folgendes Ergebnis: [a, b]. Wie ich in der Frage geschrieben habe, bekomme ich nur das Ergebnis, das gleich b im Array ist. – Ido
okay, versuche von Objekt [] zu Strings – Eenvincible