我试图用 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);
。其中myImageView
是mockactivity.xml
布局文件中ImageView
的id
。如果您正确执行此操作,则只需执行以下操作即可设置映像...
view.setImageResource(myDrawableId);