Знающие люди, подскажите как реализовать следующий механизм.
Что имею:
В ListView загружается распарсеная инфа со страницы сайта.
Ячейка списка разбита на 3 TextView "Название, Описание, Цена".
Через SimpleAdapter я заполняю список.
Задача: При нажатии на пункт списка нужно открывать новое активити, в котором будет загружаться инфа с сайта get запросом. (В запросе надо передать id товара).
Собственно id товара надо добавить как "скрытый" атрибут списка, чтобы потом его можно было получить при нажатии.
Через map<String, Object> добавить поле id каждому значению как вариант? Но вот как этот id потом вытащить вот тут...
Код: Выделить всё
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
Вот код
Код: Выделить всё
SimpleAdapter adapter = new SimpleAdapter(Number1Activity.this,
result,
R.layout.listres, new String[]{
TITLE,
DESC,
PRICE,
}, new int[]{
R.id.search_list_title,
R.id.search_list_desc,
R.id.search_list_price});
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Content.setText("");
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
Код: Выделить всё
private ArrayList<HashMap<String, Object>> parseResults(String res)
{
String items[] = new String[100];
ArrayList<HashMap<String, Object>> tovar = new ArrayList<HashMap<String,Object>>();
HashMap<String, Object> hm;
final Pattern itempattern = Pattern.compile("<item>(.*?)</item>");
final Pattern namepattern = Pattern.compile("<name>(.*)</name>");
final Pattern descpattern = Pattern.compile("<desc>(.*)</desc>");
final Pattern pricepattern = Pattern.compile("<postavka>(.*)</postavka>");
Matcher itemmatcher = itempattern.matcher(res);
int i = 0;
int c = 0;
while (itemmatcher.find())
{
items[c] = itemmatcher.group(1);
c++;
}
if (c == 0) return null;
for (i=0;i<c;i++)
{
Log.d("TEST", items[i]);
Matcher namematcher = namepattern.matcher(items[i]);
Matcher descmatcher = descpattern.matcher(items[i]);
Matcher pricematcher = pricepattern.matcher(items[i]);
hm = new HashMap<String, Object>();
if (namematcher.find())
{
hm.put(TITLE, namematcher.group(1));
Log.d("TITLE", namematcher.group(1));
}
if (descmatcher.find())
{
hm.put(DESC, descmatcher.group(1));
Log.d("DESC", descmatcher.group(1));
}
if (pricematcher.find())
{
hm.put(PRICE, pricematcher.group(1));
Log.d("PRICE", pricematcher.group(1));
}
tovar.add(hm);
}
return tovar;
}
Если нужно - скину код целого активити.