2012-01-13 4 views
1

Im пытается прикрепить изображение с Intent.putExtra, но im не совсем уверен, как отображать изображение, когда я отправляю его на следующую операцию.myIntent.putExtra во время listView onClick

вот мой OnClick:

lv.setOnItemClickListener (new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
      // When clicked, bring up Mockactivity.class 
     if(position == 1) 
     { 
      Intent myIntent = new Intent(view.getContext(), mockactivity.class); 
      myIntent.putExtra("myDrawable", R.drawable.mydrawable); 
      startActivityForResult(myIntent, 0); 
     } 

Он щелкнет, и довести до пустой деятельности, что я назвал «mockactivity.class», если я вынимаю линию «myIntent.putExtra», но когда это есть ли он ничего не делает. Кто-нибудь знает, как отобразить, что можно сделать в следующем действии, которое я нажимаю?

+0

Имея или не имея дополнительных, не должно иметь никакого отношения к тому, действительно ли начинается действие нового действия. – Maximus

ответ

1

Все в классе R является целым числом, представляющим фактический ресурс.

В другой Activity вам нужно использовать что-то вроде ...

int myDrawableId = getIntent().getIntExtra("myDrawable", -1); 

В этом случае -1 значение по умолчанию, который будет возвращен, если Intent не содержит Int дополнительный с этим именем так проверьте myDrawableId, чтобы посмотреть, есть ли он -1, прежде чем пытаться его использовать.

Вы должны тогда использовать myDrawableId так же, как вы бы использовали R.drawable.mydrawable.

EDIT: Используя этот код ...

ImageView view = (ImageView) findViewById(...); 

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

ImageView view = (ImageView) findViewById(R.id.myImageView); 

... где myImageView является в id в ImageView в файле mockactivity.xml макета. Если вы сделаете это правильно, просто выполните следующее, чтобы установить изображение ...

view.setImageResource(myDrawableId); 
+0

Я сделал это и создал ImageView после этого и использовал findViewById и установил его в myDrawableId, но он говорит, что представление локальной переменной не используется и подсказывает, как им не использовать его? –

+0

@Override public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.mockactivity); int myDrawableId = getIntent(). GetIntExtra ("myDrawable", -1); ImageView view = (ImageView) findViewById (myDrawableId); –

+0

@Nick: см. Редактирование моего ответа. – Squonk

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