2009-09-08 3 views
1

Я использую GridView. Он содержит изображения. Когда я нажимаю на какой-либо элемент этого вида сетки, я хочу, чтобы это изображение Идентификатор ресурса отправлялся в другое действие. Где я могу отобразить это изображение в большем размере? Как я могу получить идентификатор ресурса ресурса и отправить его другим действиям?Как я могу получить идентификатор ресурса ресурса и отправить его другим действиям на Android?

ответ

2

Один из способов сделать это, изменив метод getView() вашего адаптера, чтобы он использовал шаблон ViewHolder (Romain Guy's Google I/O 2009 presentation, посмотрите на 0:09:05).

В вашем держателе, который вы указываете на вид, вы можете добавить поле для идентификатора ресурса. Когда вы получите свой выбранный вид, найдите держатель вида (view.getTag()) и получите его поле ID.

Вы можете передать его другим действиям, используя намерения.

Возможно, вам придется использовать ContentProvider, чтобы вторая активность имела доступ к выбранному вами изображению. Имейте в виду, что чаще всего ресурсы, которые скомпилированы в вашем .apk и имеют идентификатор, являются небольшими, полезными, потому что в противном случае они накапливают ваше приложение, и большую часть времени вы можете рассчитывать на использование Интернета для загрузки изображений.

Конечно, это не всегда так, но если вы имитируете интернет-ресурсы с ресурсами res/drawable, скорее всего, вы столкнетесь с различными проблемами.

Удачи.

1

Вы можете поместить эту информацию в намерении использоваться для запуска другой деятельности:

final Intent showImage = new Intent(this, ImageDisplayActivity.class); 
showImage.putExtra("RESOURCE_ID", resourceId); 
startActivity(showImage); 

И в ImageDisplayActivity Вы будете использовать

Bundle extras = getIntent().getExtras(); 
int entryId = extras.getInt("RESOURCE_ID"); 
+0

в виде сетки onItemClick я получить идентификатор элемента по Gridviewobj.getItemIdByPosition (позы); , но он возвращает id в двойном не в int ..... im sad, как использовать двойной идентификатор в другой активности для displayimg больших изображений .... – 2009-09-09 04:50:12

+0

Возможно, вы также захотите сохранить этот «RESOURCE_ID» как константу в статическом класс. Например: ImageDisplayActivity.RESOURCE_ID – gregm

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