Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Получить id вместо position в OnItemClickListener - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Custom AlertDialog http://www.cyberforum.ru/android-dev/thread1122633.html
Помогите люди добрые, что то никак не нагуглю... А желательно кодом;)
Программирование Android Первая игра - каково ваше мнение о ней? Ну вот и написал свою первую игру. Тема вопроса не касается напрямую программирования, а больше носит эстетический характер, но все же считаю не менее важен в программировании игр. Хотелось бы... http://www.cyberforum.ru/android-dev/thread1122328.html
Обрезка фотографии одновременно для обычного и landscape режимов Программирование Android
Как обрезать полученную фотографию это я могу, а вот что бы обрезать одновременно для двух режимов, есть что то стандартное или писать надо самому? Например при установке обоев такой режим есть. Не...
Программирование Android AVD - no target selected
При создании эмулятора с версией android > 4.0 получаю ошибку: no target selected. До 4.0, а также версии 4.4.2, благополучно создается. Разумеется гуглил, решение - установить ARM EABI v7a System...
Программирование Android FTP. Ошибка Access denied http://www.cyberforum.ru/android-dev/thread1122042.html
Доброго времени суток. Работаю в RAD Studio XE5. Там есть возможность разработки приложений под Android на Delphi. Пишу FTP-сервер. Есть IdFTPServer и Button. Пишу следующее: procedure...
Программирование Android Не могу запустить AWD Manager Установил eclipse Indigo последний, скачал SDK для Android, поставил плагин, прописал пути, создал первое приложение. Заполняю поля в AWD manager что бы создать виртуальный девайс, все заполнено,... подробнее

Показать сообщение отдельно
Ibir
1 / 1 / 0
Регистрация: 18.03.2014
Сообщений: 5

Получить id вместо position в OnItemClickListener - Программирование Android

19.03.2014, 03:37. Просмотров 1142. Ответов 6
Метки (Все метки)

Здравствуйте. Хотел для себя создать справочник, для чего в сети нашел пример, который я немного дополнил и в принципе он рабочий:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
listView.setOnItemClickListener(new OnItemClickListener() 
        {
            public void onItemClick(AdapterView<?> a, View v, int position, long id) 
            {
               [B] String itemname = new Integer(position).toString();[/B] <= this
 
                Intent intent = new Intent();
                intent.setClass(Spisok.this, Prob.class);
 
                Bundle b = new Bundle(); 
                b.putString("posit", itemname);  
                intent.putExtras(b);
                startActivity(intent);
             }
        });
принимает:
Java
1
2
3
4
5
Bundle bundle = getIntent().getExtras();
        String itemname = "n" + bundle.getString("posit");
 
        Context context = getBaseContext();
        String text = readRawTextFile(context, getResources().getIdentifier(itemname, "raw", "ru.ibir.irrveb"));
На выходе я получаю значения типа: n0, n1 и т.д. это по позиции элемента.
А в моём примере я применяю фильтр к списку, получается что элементов в списке становится меньше и они не соответствуют значениям n0, n1 и т.д.
пример:
Java
1
2
3
4
5
текст1 -> n0
текст2 -> n1
текст3 -> n2
[B]А при использования фильтра:[/B]
текст3 -> n0
Поэтому, наверное, мне необходимо брать не position а id.
Посоветовали заменить строчку на:
Java
1
String itemname = String.valueOf(v.getId());
Тогда приложение вылетает с ошибкой. а на выходе получаются значения одного типа: n-1
Помогите решить проблему.

Добавлено через 13 часов 36 минут
Я исправит чуть так:
Java
1
2
3
4
5
6
7
8
9
10
11
listView.setOnItemClickListener(new OnItemClickListener() 
        {
            public void onItemClick(AdapterView<?> parent, View view,  int position, long id) 
            {
 
                 Intent intent = new Intent(Spisok.this, Prob.class);
                 intent.putExtra("id", Long.toString(id));
                 startActivity(intent);
 
             }
        });
и
Java
1
2
3
4
5
Intent intent = getIntent();
        
        String lName = intent.getStringExtra("id");
 
        String itemname = ("n" + lName); //получаем строку и формируем имя ресурса
Работает, однако всё равно тот же результат (
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru