Как сохранить идентификатор внутри ListView и отображать данные какданные </option> в Android Java - PullRequest
0 голосов
/ 31 октября 2019

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

List<String> carModelList = new ArrayList<>();
carModelList.add("car1");
carModelList.add("car2");
 adapter = new CustomView(this, (ArrayList<String>) carModelList);
 mListview.setAdapter(adapter);

Теперь я знаю, что результат будет

car1
car2

Но мне нужно

List<String> carModelList = new ArrayList<>();
carModelList.add("hidden unique id","car1");//like <option value="hidden unique id">car1</option>
carModelList.add("hidden unique id","car2");
 adapter = new CustomView(this, (ArrayList<String>) carModelList);
 mListview.setAdapter(adapter);

, результат должен быть примерно таким:

car1
car2

//when i set the OnItemClickListener
mListview.setOnItemClickListener((parent, view, position, id) -> {

     mListview.getItemAtPosition(position).toString()// should give car1 or car2
     mListview.getHiddenUniqueIdAtPosition(position).toString()//should give hidden unique id

}

1 Ответ

1 голос
/ 31 октября 2019

Вы должны использовать модель (POJO), чтобы справиться с этим. Проверьте ниже:

class ListItem {
    String id;
    String name;

    public ListItem(String id, String name) {
        this.id = id;
        this.name = name;
    }
}

Измените конструктор вашего адаптера для обработки этого типа данных

public CustomView(Context context, ArrayList<ListItem> carModelList) {
}

И затем передайте этот список адаптеру и покажите только имя в getView

List<ListItem> carModelList = new ArrayList<>();
carModelList.add(new ListItem("hidden unique id","car1"));
carModelList.add(new ListItem("hidden unique id","car2"));
adapter = new CustomView(this, (ArrayList<ListItem>) carModelList);
mListview.setAdapter(adapter);

Получить идентификатор от OnItemClickListener, как показано ниже:

mListview.setOnItemClickListener((parent, view, position, id) -> {
     ListItem listItem = mListview.getItemAtPosition(position);
     String id = listItem.id; // this is hidden id
}
...