2013-03-12 3 views
0

Как получить правильное значение для моего намерения из моего GridView. Кажется, я делаю это неправильно. Так вот что я сделал:Android-onItemНажмите правое значение в намерение

в моем MainActivity:

CategoryRowItem category; 
. 
. 
. 
//after parsing from json 
category = new CategoryRowItem(catId, catName); 
categoryItems.add(category); 

gridView = (GridView) findViewById(R.id.grid_view); 
final CustomBaseAdapter adapter = new CustomBaseAdapter(this, categoryItems); 
gridView.setAdapter(adapter); 

gridView.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
      String categoryId = category.getCatId(); // i think this not right 
      String categoryName = category.getCatName(); 
      System.out.println("CAT ID: " +categoryId); 
      Intent intent = new Intent(getApplicationContext(), ShopListActivity.class); 
      intent.putExtra("catID", categoryId); 
      intent.putExtra(CATEGORY, categoryName); 
      startActivity(intent); 
     } 
    }); 

мой CategoryRowItem класс: Это добытчиками и сеттеров

public String getCatId(){ 
    return catId; 
} 

public String getCatName(){ 
    return catName; 
} 
    public void setCatId(String cId){ 
    this.catId = cId; 
} 

public void setCatName(String name){ 
    this.catName = name; 
} 

Итак, как я могу получить правильное значение, как CatID, или catName элемента щелкнули>

ответ

1

position сообщит вам, какой элемент в списке был нажат/выбран, и с помощью которого вы можете получить свой CategoryRowItem и его деталей.

CategoryRowItem category = categoryItems.get(position); // Add this line here. 
String categoryId = category.getCatId(); // Now this will be right. 
String categoryName = category.getCatName(); 
+0

спасибо, но это не сработало. он по-прежнему получает одинаковый идентификатор. – elL

+0

О, я понял. Благодарю. – elL

1
gridView.setOnItemClickListener(new OnItemClickListener() { 

    public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
     String categoryId = categoryItems.get(position).getCatId(); // i think this not right 
     String categoryName = categoryItems.get(position).getCatName(); 
     System.out.println("CAT ID: " +categoryId); 
     Intent intent = new Intent(getApplicationContext(), ShopListActivity.class); 
     intent.putExtra("catID", categoryId); 
     intent.putExtra(CATEGORY, categoryName); 
     startActivity(intent); 
    } 
}); 

заменить этот код с сеткой слушателем

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

  • Нет связанных вопросов^_^