2 / 2 / 1
Регистрация: 16.01.2013
Сообщений: 165

ListView onClickListener

15.07.2019, 21:16. Показов 1289. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет ! Реализую редактирование записи, не могу обратится к элементу массива, приложение крашится.
Есть ListView куда я считываю данные с БД, и при клике по определенной записи перехожу на другое Активи для редактирования. Как получить id записи по которой кликнул ?
Делал вот так:
Считал в Listview
Java
1
2
3
4
5
6
7
8
9
10
11
 @Override
    protected void onResume() {
        super.onResume();
        db = dbHelper.getReadableDatabase();
        Cursor userCursor =db.rawQuery("select * from "+dbHelper.TABLE_TASKS, null);
        headers = new String[] {dbHelper.KEY_ID, dbHelper.KEY_NAME};
 
        SimpleCursorAdapter userAdapter = new SimpleCursorAdapter(this,android.R.layout.two_line_list_item,
                userCursor,headers,new int[]{0,android.R.id.text2},0);
        LV_list_ts.setAdapter(userAdapter);
    }
Обработка кликов в ListView
Здесь ошибка вместе присваивания
Java
1
2
3
4
5
6
7
8
 LV_list_ts.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                String text_item = headers[position];
                UdateNote(text_item);
               // Log.d("LOG","Элемент:"+headers[position]+"LONG:"+l);
            }
        });
Пересылаю id на дальнейшее редактирование
Java
1
2
3
4
5
 private void UdateNote(String text_item) {
        Intent intent = new Intent(this,UpdateNote.class);
        intent.putExtra("title",text_item);
        startActivity(intent);
    }
Ошибки логов
Code
1
2
3
4
2019-07-15 23:08:19.760 3374-3374/com.example.firstadsapp E/InputEventReceiver: Exception dispatching input event.
2019-07-15 23:08:19.760 3374-3374/com.example.firstadsapp E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
2019-07-15 23:08:19.764 3374-3374/com.example.firstadsapp E/MessageQueue-JNI: java.lang.ArrayIndexOutOfBoundsException: length=2; index=6
        at com.example.firstadsapp.Notes$2.onItemClick(Notes.java:55)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2019, 21:16
Ответы с готовыми решениями:

OnClickListener
Хочу сделать обработчик нажатий в одном блоке, но что-то идет не так на OnClick, жалуется что не используется.. Что я делаю не так? ...

Обработчик OnClickListener
Добрый день, начал изучать интерфейсы и как оказалось в JAVA нельзя создать экземпляр интерфейса. Здесь же OnClickListener oclBtnOk =...

OnClickListener в Андроид
Всем доброго времени суток!!! Я новичок в программировании Андроид устройств. Я программирую в среде Eclipse с Android SDK tools. Вопрос...

7
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.07.2019, 22:45
Массив headers содержит два элемента, список из бд по всей видимости больше 6.
Цитата Сообщение от cb7777 Посмотреть сообщение
Как получить id записи по которой кликнул
Чтобы что-то продать, надо сначала что-то купить. (с)
Чтобы получить id, его задать нужно для начала.
Нужно создавать класс-модель данных, где будет как минимум текст и id, выгружать их туда и скармливать в кастомный адаптер (желательно для recyclerView).
0
2 / 2 / 1
Регистрация: 16.01.2013
Сообщений: 165
15.07.2019, 23:40  [ТС]
А нельзя изначально все хранить как ключ значение ?
А потом hashmap передавать в customadapter или он так не умеет ?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.07.2019, 23:53
Можно. Кастомный адаптер на то и кастомный, как сделаешь, так он и умеет.
0
2 / 2 / 1
Регистрация: 16.01.2013
Сообщений: 165
16.07.2019, 10:55  [ТС]
Привет добрый человек, вообщем решил делать через модель\класс.
Создал класс Note у меня там два поля id, text, создал конструктор.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Note {
    public static int ID;
    public static String Text;
 
    public Note(int id, String Text) {
        this.ID = id;
        this.Text = Text;
    }
 
    public static int getID() {
        return ID;
    }
 
    public static void setID(int ID) {
        Note.ID = ID;
    }
 
    public static String getText() {
        return Text;
    }
 
    public static void setText(String text) {
        Text = text;
    }
}
Вывод из бд в Listview, почему он не выводит нормально строки ?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public void SelectDataDb(ListView listView)
    {
        SQLiteDatabase database = dbHelper.getWritableDatabase();
        Cursor cursor = database.query(DbHelper.TABLE_TASKS,null,null,null,null,null,null);
        Note note ;
        ArrayList<Note> list_note = new ArrayList<Note>();
        if(cursor.moveToFirst()){
 
            // scAdapter = new SimpleCursorAdapter(this, R.layout.activity_add_task, cursor,from, new int[]{android.R.id.text1},0);
 
            int idIndex = cursor.getColumnIndex(DbHelper.KEY_ID);
            int taskIndex = cursor.getColumnIndex(DbHelper.KEY_NAME);
 
 
            do{
                Log.d("LOG","ID="+cursor.getInt(idIndex)+
                        ", TASK - " + cursor.getString(taskIndex));
                note = new Note(cursor.getInt(idIndex),cursor.getString(taskIndex));
                list_note.add(note);
            }while (cursor.moveToNext());
            ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,list_note);
            listView.setAdapter(arrayAdapter);
        } else
            Log.d("LOG","0 rows");
        cursor.close();
    }
Миниатюры
ListView onClickListener  
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
16.07.2019, 11:11
Здесь всё ещё не хватает кастомного адаптера. Ты кидаешь не список строк, а список объектов Notes, в котором не переопределён метод toString().
0
2 / 2 / 1
Регистрация: 16.01.2013
Сообщений: 165
16.07.2019, 12:32  [ТС]
Можешь кинуть пример ? Или учебник где это написано ?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
16.07.2019, 12:46
Лучший ответ Сообщение было отмечено cb7777 как решение

Решение

https://stackoverflow.com/ques... -list-view
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.07.2019, 12:46
Помогаю со студенческими работами здесь

Не работает onclicklistener
Задача вроде бы до ужаса простая, мне нужно просто при нажатии перейти на другой активити и всёёё Я уже три часа сижу и ничего не...

Не отлавливается View.OnClickListener
Написал следующий код, список появляется с элементами все работает. а вот на карточку внутри списка нажатие не хочет отрабатывать. еще...

OnClickListener не срабатывает пояления imageView
добрый день. подскажите почему не выводит ImageView. при клике на R.id.img изначально mark1 и mark2 скрыты при нажатие на img они...

Spinner и OnClickListener как использовать?
Появилась ошибка - error: local variable spinner is accessed from within inner class; needs to be declared final Если String select;...

Как добавить OnClickListener в toast?
Хочу сделать так чтоб мои Toast сообщения реагировали на клик. Попробовал так: Toast toast = new Toast(MyActivity.this); TextView...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru