Вам не нужно onListItemClick
Вы можете попробовать обязательные для каждого из вашей кнопки события в адаптере
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
, но, вероятно, это не будет работать на элементе списка, так что вам нужно новый aproach, как это описано в button documentation.
Однако вместо применения OnClickListener к кнопке в вашей деятельности вы можете назначить метод своей кнопке в макете XML, используя атрибут android: onClick. Например:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/self_destruct"
android:onClick="selfDestruct" />
Теперь, когда пользователь нажимает на кнопку, то Android система вызывает метод своей деятельности в selfDestruct (View). Чтобы это сработало, метод должен быть общедоступным и принимать в качестве единственного параметра View. Например:
public void selfDestruct(View view) {
// Kabloey
}
Вид, переданный в метод, является ссылкой на виджет, который был нажат.
Но это не даст мне позицию элемента, который нажал. Я имею в виду, в какой строке нажата кнопка. – Mak
Вы можете 'setTag()' на кнопке, чтобы установить сложный идентификатор, в котором вы нуждаетесь. И вы прочитаете из переданного параметра представления через 'getTag()' – Pentium10