Listview і простий приклад визначення натиснутого пункту - stack overflow російською
Спробуємо розібратися в тому, що відбувається.
Є клас ListView. Сам по собі ListView - це лише спадкоємець View. відповідальний за власне відображення і маніпулює відображеннями переданих йому View (візуально відображають елементи списку).
Підсумуємо абзац: ListView - це не сам список і списку ніякого в собі не містить, але містить в собі адаптер, який йому передати повинні Ви.
Є клас ArrayAdapter або будь-який інший спадкоємець ListAdapter. який відповідає за передачу View. відображають елементи списку, в ListView.
Підсумуємо абзац: - ArrayAdapter - це не сам список, але це адаптер, що містить в собі список, який передати йому повинні Ви.
Є клас ArrayList або будь-який інший спадкоємець List. який є Вашим списком деяких об'єктів.
А тепер довгоочікуваний приклад:
Створюємо простенький адаптер, передавши йому список:
Передбачається, що Ви вже знаєте, як знаходити ресурси в макеті, так що шукаємо ListView і передаємо йому адаптер:
Що ж після цього відбувається під капотом? А відбувається наступний діалог:
ListView каже: Блін, пора вже відображатися! Адаптер, че за фигня? Де View. скільки їх буде?
ArrayAdapter шарітся в кишенях, знаходить пачку ArrayList з м'ятним смаком, дивиться кількість об'єктів написане на пачці дрібним шрифтом і називає цифру ..
ListView каже: Давай вже першу, швидше!
ArrayAdapter дістає перший-ліпший об'єкт за списком і малює його відображення View по Шаблончики, який ми йому передали, після чого говорить: тримай Бро!
ListView бере відображення View. розміщує його на екрані поверх свого і каже: Колись пояснювати, давай мені другу!
І так, поки не настане одне з двох подій:
1) скінчилося місце на екрані;
2) скінчилася пачка ArrayList;
Після чого ListView і ArrayAdapter тимчасово відпочивають, поки хто-то або щось не почне скролить ListView або не скаже ArrayAdapter -у, що в пачці ArrayList щось змінилося.
Ну а тепер думаю можна відповісти на Ваше питання "як визначити, яка рядок (пункт списку) була обрана після натискання на кнопку":
Хоча є спосіб і без кнопки при натисканні на сам елемент списку: