2015-09-11 3 views
0

У меня есть listView с 2 TextViews и 1 ImageView. Я использую пользовательский адаптер (класс ArrayAdapter и «Data»), все работает как ожидалось.Как получить идентификатор изображения из спискаVIEW

Проблема заключается в том, что мне нужно как-то retrive ресурс изображения или идентификатор из ListView, так что я могу использовать его в другом месте в коде ...

я могу получить строки из TextViews как этот ниже, но не ImageView

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> MyListAdapter, View view, int position, long id) { 

      TextView names = (TextView) view.findViewById(R.id.namesTV); 
      TextView desc = (TextView) view.findViewById(R.id.descTV); 

      String names = names.getText().toString(); 
      String desc = desc.getText().toString();  //this works fine 

      ImageView imageV = (ImageView) view.findViewById(R.id.imageIV); 

      // i tried 
      int image = imageV.getID; //or somthing .. but not working 
     } 
    } 

Итак, как получить идентификатор изображения из ImageView, выбранного onItemClick в ListView?

+0

'imageV.getId()' возвращает то же значение вашего 'R.id.imageIV'. Вы спрашиваете об идентификаторе ресурса изображения? Как 'R.drawable.image'? –

+0

yes Идентификатор ресурса, такой как R.drawable ... – user2722931

+0

'setTag()/getTag()' является решением, но в идеале вы находите правильное изображение с помощью 'int position'. –

ответ

1

Проблема заключается в том, что мне нужно, чтобы получить как-то ресурс изображения или идентификатор из ListView

Чтобы получить идентификатор изображения ресурса, который в настоящее время доступен в щелкнул ряду сделайте следующее:

1. Сохранение идентификатора ресурса с использованием метода в getView сразу после установки изображения для ImageView:

imageView.setTag(R.drwable.<image name>); 

2. Теперь в onItemClick использования getTag получить идентификатор ресурса:

ImageView imageV = (ImageView) view.findViewById(R.id.imageIV); 
int image = Integer.parseInt(imageV.getTag().toString()); 
+0

Ty для вашей помощи, мне нужно, чтобы setTag на каждое изображение, которое я использую? – user2722931

+0

@ user2722931: Да, 'imageView.setTag (R.drwable. );' строка сразу после строки, где настройка изображения для ImageView в методе getView –

0

Попробуйте использовать SetTag()/GetTag()

Пожалуйста, ссылки link