У меня есть простая сетка со строками элементов и столбцами параметров каждого элемента.Конечно, я могу вручную связать действия OnClick с элементами ячейки с помощью определенных идентификаторов ресурса:
views.setOnClickPendingIntent(R.id.row1column1, launchA);
views.setOnClickPendingIntent(R.id.row1column2, launchB);
// ...
views.setOnClickPendingIntent(R.id.row2column1, launchC);
// ...
Я бы предпочел использовать ListView или GridView и адаптер.Есть ли способ получить идентификатор клетки от одного из них?Я надеялся, что ListView setOnItemClickListener () вызовет меня с идентификатором представления в строке 'position':
onItemClick(AdapterView<?> parent, View view, int position, long id) { ... }
, но не будет.Может быть, другой подход?
Спасибо.
Обновление:
Я начал с этого:
contactsView.setAdapter(new ContactAdapter(this.getApplicationContext(), R.layout.contact, contacts));
contactsLV.setOnItemClickListener(new OnItemClickListener() { ... });
Я предположил, что не могуЗайдите в мой адаптер и установите дочерний вид OnClickListeners.Плохое предположение.Когда я вернулся к этому, я попробовал:
Button x = (Button)newView.findViewById(R.id.contact_x);
Button y = (Button)newView.findViewById(R.id.contact_y);
x.setOnClickListener(new OnClickListener() { ... });
y.setOnClickListener(new OnClickListener() { ... });
...
Вуаля!