myIntent.putExtra during listView onClick



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

这是我的点击:

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

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

编辑:使用此代码...

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

。您正在尝试查找ImageView,而不是用于其图像源的可绘制对象。你应该使用...

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

。其中myImageViewmockactivity.xml布局文件中ImageViewid。如果您正确执行此操作,则只需执行以下操作即可设置映像...

view.setImageResource(myDrawableId);

最新更新