Предположим, что у меня есть ListView
с некоторыми элементами. Я хочу сделать это, когда пользователь нажимает на элемент, приложение выдает Toast
, содержащий имя элемента. Например, когда пользователь нажимает «Apple», им вручают тосты: «Вы ели Apple». Как я могу это сделать?Android ListView - как реагировать на клики?
ответ
вы можете установить Пункт Нажмите Слушатель на List View т.е.
listvw=(ListView)findViewById(R.id.listviewid);
listvw.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
Toast.makeText(ActivityName.this, "Text message", Toast.LENGTH_SHORT).show();
}
});
Стандартный способ использования .setOnItemClickListener()
.
Но как получить имя нажатого элемента? – Arielle
использовать как этот
ActivityListView .java
package com.sunil;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ActivityListView extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create an array of Strings, that will be put to our ListActivity
String[] namesArray = new String[] { "Linux", "Windows7", "Eclipse",
"Suse", "Ubuntu", "Solaris", "Android", "iPhone" };
/* Create an ArrayAdapter, that will actually make the Strings above
appear in the ListView */
this.setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, namesArray));
}
@Override
protected void onListItemClick(ListView l, View v,
int position, long id) {
super.onListItemClick(l, v, position, id);
// Get the item that was clicked
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
Toast.makeText(this, "You selected: " + keyword,
Toast.LENGTH_SHORT).show();
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
Я получаю 'java.lang.RuntimeException: ваш контент должен иметь ListView с атрибутом id 'android.R.id.list''. Может быть, давайте расширим стандартный класс 'Activity', а не' ListActivity'? – Arielle
такой же код работает на моем устройстве. Не продлевает действие, а также также setcontentview. Он снова будет нормально проверяться –
Возможно, это устройство несовместимо с этим кодом? – Arielle
Попробуйте это код listview = (ListView) findViewById (R.id.listid);
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,long arg3) {
// to set your list item or name
//here list is your list that you set in your adapter
list.get(pos);
}
});
- 1. ListView не реагирует на клики
- 2. Обработать клики как CTRL + клики в ListView
- 3. Button Inside Android ListView не отвечает на клики
- 4. В html/JSF - Как заставить компонент реагировать на клики?
- 5. Как заставить все элементы страницы не реагировать на клики
- 6. ListView of CheckBox не отвечает на клики
- 7. Как отвечать на Домашние клики Android
- 8. Spinner не будет реагировать на клики ... даже если onItemSelected вызывается?
- 9. Реагировать Native ListView настройки
- 10. Реагировать ListView renderrow связывают
- 11. ListView - Реагировать Native
- 12. Как реагировать на работу на android
- 13. ListView - как реагировать на двойной клик на не-элемент?
- 14. Реагировать Нативные ячейки ListView перекрываются
- 15. Клики/касание не работают в ListView
- 16. Кнопки, не отвечающие на клики - Android
- 17. Android: TabLayout не отвечает на клики
- 18. Как реагировать-родные работы на Android?
- 19. Реагировать родной RTL на Android
- 20. Как реагировать на собственный список ListView для отображения нумерации?
- 21. Как реагировать на силу?
- 22. Как подписаться на двойные клики?
- 23. Как поймать клики на заблокированном окне?
- 24. Реагировать на родные карты на Android
- 25. Реагировать Настроенный запрос на размещение на Android
- 26. Android-кластер и маркерные клики
- 27. Как прослушивать клики даже для кнопки «Назад» на Android?
- 28. Как я могу обрабатывать клики на фоне Android GridView
- 29. DrawerLayout с ListView не обрабатывает клики элементов на Samsung Tab/Android 5.0.2
- 30. Android: как распространять ListView, нажмите на spannable строку?
То же самое здесь. Как получить имя нажатого элемента? – Arielle
У вас есть вид вашего элемента списка. просто найдите текст вида, т. е. TextView text = (TextView) view.findViewById (R.id.text_viewId); ' ' Toast.makeText (ActivityName.this, text.getText(), Toast.LENGTH_SHORT) .show(); ' –
ОК спасибо. Я использовал TextView text = (TextView) arg1.findViewById (arg1.getId()); Toast.makeText (getApplicationContext(), text.getText(), Toast.LENGTH.SHORT) .show(); ' – Arielle