Я использую gridview.setOnItemClickListener (новый AdapterView.OnItemClickListener ()
показать список изображений из папки для рисования ресурса. Я хочу знать, какое изображение выбрал пользователь - не его положение в списке, а фактический идентификатор ресурса. Я пробовал gridview.setOnItemSelectedListener, но это не вызывает возврата в мою программу при нажатии на изображение.
Разве параметр View в onItemClick не предполагает, что он указывает на изображение, которое щелкнуло? Если это так, то почему View.getID () всегда возвращает «no_id», то есть «-1».
Может ли кто-нибудь сказать, что я делаю не так?
Как вы получаете идентификатор ресурса того, что было выбрано? Спасибо.
9/21/11 7 утра. Обновление на основе предоставленных комментариев:
Мне нужен идентификатор ресурса, который автоматически генерируется во время компиляции и хранится в R.java. Я хочу использовать его, чтобы получить то же представление (изображение) в другом классе. Используя такой код:
Resources res = getResources();
Drawable v = res.getDrawable(resid); //resid is from View.getID()
Я просто не понимаю, почему Адаптер передает всю информацию о View EXCEPT original-stored-generated-R.java Resource-ID. Насколько я понимаю, без этого вы не сможете получить тот же View, используя getDrawabale или getAnything. Я уверен, что другие сделали это успешно. Я просто нигде не могу найти пример.
1. public void onCreate(Bundle savedInstanceState) {
2. super.onCreate(savedInstanceState);
3. setContentView(R.layout.picgridview);
4. GridView gridview = (GridView) findViewById(R.id.gridviewforpics);
5. gridview.setAdapter(new PicImageAdapter(this));
6. gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
7. public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
8. Intent answer = new Intent();
9. int resid = v.getId(); // ß ALWAYS RETURNING –1 ?????
10. answer.putExtra("resid",resid);
11. setResult(RESULT_OK, answer);
12. }
13. });
14. };// eof method