2017-06-06 64 views
-4

我正在尝试创建一个应用程序;当我点击一个按钮时,它会在第二个活动中打开一个图像。Android - 如何通过按钮ID在新的活动中打开图像?

例如

"button1"->"image1" , 

"button2"->"image2" 

,但我不能。有办法做到这一点?

+0

是否要将数据从一项活动传递给另一项? ,就像你的情况一样。 –

+0

检查下面的链接它有一个很好的例子。
[open-an-image-in-another-activity](https://stackoverflow.com/questions/26629678/i-want-to-open-an-image-in-another-activity-when-clicked-上的项目,在最名单) –

回答

1

在您的MainActivity实施OnClickListener的按钮:

private Button button1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    button1 = (Button) findViewById(R.id.yourItemIdInXml); 

    button1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      // put Intent here 
     } 
    }); 
} 

中的onClick中创建一个意图:

Intent intent = new Intent (CurrentActivity.this, ImageActivity.class); 

,并把你的图像标识(假设你的图片是在可绘制文件夹和具有和ID)的意图:

intent.putExtra("IMAGE", imageId); 
startActivity(intent); 

而在接收活动onCreat E法接受这个意图:

private ImageView image; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_image); 

    int imageId = getIntent().getIntExtra("IMAGE", 0); // 0 is a default value 
                 // IMAGE is a string that serves as a key, can be anything just make sure it's the same as in putExtra() 
} 

而且你可以创建后的ImageView和使用图像标识设置:

ImageView image = (ImageView) findViewById(R.id.imageIdInXml); 
image.setImageResource(imageId); 

而对于第二个按钮做同样的。

这与here的基本相同,只是更详细一点。

相关问题