我正在尝试使用Intent.putExtra附加图片,但是我不确定将图像发送到下一个活动时如何显示图像。

这是我的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);
      }


如果我取出“ myIntent.putExtra”行,它将单击并调出一个名为“ mockactivity.class”的空白活动,但是在该行不起作用。
有人知道如何在我点击进入的下一个活动中显示该可绘制对象吗?

最佳答案

R类中的所有内容都是代表实际资源的整数。

在另一个Activity中,您需要使用类似...

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


在这种情况下,-1是默认值,如果Intent不包含具有该名称的int extra,则将返回该默认值,因此请在尝试使用myDrawableId之前先测试-1以查看其是否为myDrawableId

然后,您应该能够以与使用R.drawable.mydrawable相同的方式使用ImageView

编辑:使用此代码...

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


...您正在尝试查找myImageView而不是用于其图像源的drawable。您应该使用...

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


...其中idImageView布局文件中mockactivity.xml的。如果操作正确,则只需执行以下操作即可设置图像...

view.setImageResource(myDrawableId);

10-05 18:02