ListView и скрытый идентификатор. Как это возможно?

Я разрабатываю приложение для Android, и теперь я реализовал ListView, который показывает список курсов, связанных с базой данных.

Я хотел бы знать, как включить, с именем, скрытый идентификатор (который поступает из db), так что, как только пользователь нажимает на элементы, приложение переходит к относительному представлению выбранных курсов.

И как я могу поддерживать идентификатор во время навигации внутри курса?

На данный момент мой код просто загружает имя курсов из db и устанавливается в виде списка:

ArrayAdapter<String> result = new ArrayAdapter<String>(CourseActivity.this, android.R.layout.simple_list_item_1); for (CourseRecord c : get()) result.add(c.getFullname()); lv.setAdapter(result); 

Очевидно, я могу сделать также c.getid (), но я не туда, где нужно поместить идентификатор.

Большое спасибо.

PS: Может быть, у кого-то есть действительно хорошая графика просмотра списка?

Измените адаптер массива следующим образом.

 private ArrayAdapter<String> result = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1){ @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.row, null); } v.setTag(getMyIdForPosition(position)); return convertView; } }; 

И у вас есть обработчик кликов для получения выбранных идентификаторов

  private OnItemClickListener itemClickedHandler = new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { String myId = (String)v.getTag(); doYourStuff(myId); } }; 

Назначить слушателя в список

 myList= (ListView)findViewById(R.id.history); myList.setOnItemClickListener(itemClickedHandler); 

Вы можете сохранить идентификатор в скрытом TextView. В элементе списка XML добавьте 'android: visibility = "gone" в TextView. Аналогично, в обработчике кликов вы можете прочитать идентификатор из текстового поля.

Вы также можете хранить идентификатор, используя метод setTag (Object object) для представления. Используйте метод getTag () для извлечения этого идентификатора из этого представления.

Intereting Posts
Android studio 1.4 и векторное изображение Android: дайте веб-обзор закругленные углы? Запустить приложение Android из SMS / MMS-сообщения? Двоичная строка XML-файла # 17: ошибка раздувания класса <unknown>, вызванная UnsupportedOperationException: невозможно преобразовать в измерение: type = 0x2 Установите начальную высоту изображения параллакса в CollapsingToolbarLayout Анализ ответа ksoap2 Линия рисования в краске пальца удаляет ранее нарисованное изображение Android: Какой код ответа делает в VC-приложение для выставления счетов при истечении времени ожидания? (Android) Как показать часть изображения? Android – всплывающее меню, когда нажата кнопка списка? Как заменить фрагмент C на фрагмент A при нажатии кнопки «Назад»? Фоновый поток блокировки UI в течение нескольких секунд Как добавить пустое пространство в конец ListView? У BouncyCastle есть служба SecureRandom? Как настроить статический IP-адрес, сетевую маску, шлюз, DNS программно на Android 5.x (Lollipop) для подключения Wi-Fi