2015-10-21 2 views
0

может быть легко, но им трудно решить эту проблему. Таким образом, у меня есть элемент в списке, следующий код:получить значение из списка не по позиции

private List<Item> loadItem(){ 

    itemEntityList = new ArrayList<Item>(); 
    Item item1 = new Item(); 
    item1.setId(1); 
    item1.setCategoryId(1); 
    item1.setProductName("Blopress 8mg"); 
    item1.setPrice("10000"); 
    itemEntityList.add(item1); 

    Item item2 = new Item(); 
    item2.setId(2); 
    item2.setCategoryId(3); 
    item2.setProductName("Blopress 16mg"); 
    item2.setPrice("12000"); 
    itemEntityList.add(item2); 

    Item item3 = new Item(); 
    item3.setId(3); 
    item3.setCategoryId(2); 
    item3.setProductName("Celebrex 100mg"); 
    item3.setPrice("15000"); 
    itemEntityList.add(item3); 

    Item item4 = new Item(); 
    item4.setId(4); 
    item4.setCategoryId(1); 
    item4.setProductName("Celebrex 200mg"); 
    item4.setPrice("17000"); 
    itemEntityList.add(item4); 

return itemEntityList; 
} 

Я хочу, когда я нажимаю на список просмотра его тостов сообщение Id. Я попробовал это, но его тосты позицию listview. что я хочу, чтобы его тост Id не занимал позицию, никаких советов?

listViewCatalog.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, 
           long id) { 


      Toast.makeText(CatalogActivity2.this, position+" _", Toast.LENGTH_LONG).show(); 


     } 
    }); 
+0

Какой адаптер вы используете? – Blackbelt

+0

Вы можете увидеть последний параметр 'onItemClick'? – pskink

+0

@Blackbelt я использую ArrayList –

ответ

3

В вашем адаптере есть метод getItemId(). что-то вроде этого:

@Override 
public long getItemId(int position) { 
    return mObjects.get(position).getId(); 
} 

, если вы внедрили этот метод, как это в своем адаптере. Вы можете назвать это всякий раз, когда вы хотите и получить идентификатор вашего пункта, как это:

yourAdapter.getItemId(position); 

UPDATE , как @pskink упоминалось вы можете использовать последний параметр onItemClick

@Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) {...} 

который является идентификатором.

+1

upvote, вам даже не нужно называть 'getItemId', просто используйте последний параметр' onItemClick' – pskink

+0

да действительно, спасибо Milad и pskink –

+0

@pskink да конечно. id передается в onItemClick;) –

Смежные вопросы