У меня есть Arraylist
из HashMap
.Каждый элемент HashMap
содержит два столбца: имя столбца и соответствующее значение.Это HashMap
будет добавлено в ListView
с 3 TextView
.
. Я заполняю ArrayList
следующим образом, а затем назначаю его адаптеру для его отображения:
ArrayList<HashMap<String, String>> list1 = new ArrayList<HashMap<String, String>>();
HashMap<String, String> addList1;
for (int i = 0; i < count; i++) {
addList1 = new HashMap<String, String>();
addList1.put(COLUMN1, symbol[i]);
addList1.put(COLUMN2, current[i]);
addList1.put(COLUMN3, change[i]);
list1.add(addList1);
RecentAdapter adapter1 = new RecentAdapter(CompanyView.this,
CompanyView.this, list1);
listrecent.setAdapter(adapter1);
}
.
Теперь на listItemClick
извлеченные данные имеют различную форму в разное время .
Например.Мой список содержит следующие данные:
ABC 123 1
PQR 456 4
XYZ 789 7
т.е. когда я регистрирую извлеченную строку после нажатия 1-го элемента списка, я получаю один из нескольких выходных данных:
{1 = ABC,2 = 123, 3 = 1}
{Первый = ABC, Второй = 123, Третий = 1}
{1 = 123,0 = ABC, 2 = 1}
и даже {27 = 123, 28 = 1, 26 = ABC}
Первоначально я использовал:
int pos1 = item.indexOf("1=");
int pos2 = item.indexOf("2=");
int pos3 = item.indexOf("3=");
String symbol = item.substring(pos1 + 2,pos1 - 2).trim();
String current = item.substring(pos2 + 2, pos3 - 2).trim();
String change = item.substring(pos3 + 2, item.length() - 1).trim();
Тогда для 4-го случая я должен использовать:
int pos1 = item.indexOf("26=");
int pos2 = item.indexOf("27=");
int pos3 = item.indexOf("28=");
String symbol = item.substring(pos1 + 3, item.length() - 1).trim();
String current = item.substring(pos2 + 3, pos3 - 3).trim();
String change = item.substring(pos3 + 3, pos1 - 3).trim();
Чтобы я получил ABC
в symbol
и т. Д.
Но,при таком подходе приложение полностью теряет свою надежность .
Я также пытался
while (myVeryOwnIterator.hasNext()) {
key = (String) myVeryOwnIterator.next();
value[ind] = (String) addList1.get(key);
}
Но оно не дает правильного значения.Вместо этого он возвращает случайный символ, например, для.ABC или PQR или XYZ.
Я что-то не так делаю?
Заранее спасибо!