[英]Two buttons of Android widgets calling same Activity with different intents
[英]ANDROID - 2 different intents opens the same activity
我正在制作一個應用程序,這時我有兩個不同的意圖來攜帶圖像。 我正在嘗試在imageViews的同一活動中傳遞這些圖像。
有人可以幫忙嗎? 謝謝!!
我的代碼是:
ImageButton btn_insert = (ImageButton)findViewById(R.id.btn_insert);
btn_insert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), ViewClothes.class);
i.putExtra(ITEM_IMAGE1, image1);
startActivity(i);
Intent i2 = new Intent(getApplicationContext() , ViewClothes.class);
i2.putExtra(ITEM_IMAGE2 , image2);
startActivity(i2);
}
});
在第二個活動中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_clothes);
Intent i = getIntent();
ImageView image1 = (ImageView)findViewById(R.id.im1);
image1.setImageBitmap(BitmapFactory.decodeFile(i.getStringExtra("image1")));
Intent i2 = getIntent();
ImageView image2 = (ImageView)findViewById(R.id.im2);
image2.setImageBitmap(BitmapFactory.decodeFile(i2.getStringExtra("image2")));
}
您將Intent
弄糊塗了,然后兩次啟動了下一個Activity
。
一個Intent可以有多個對象,並將這些對象傳遞給Activity。 一個意圖用於啟動下一個活動,但是您可以輕松地添加幾個對象,如下所示:
// first activity
Intent i = new Intent(getApplicationContext(), ViewClothes.class);
i.putExtra(ITEM_IMAGE1, image1);
i.putExtra(ITEM_IMAGE2 , image2);
startActivity(i);
並收到所有圖像,例如:
// next activity
ImageView image1 = (ImageView)findViewById(R.id.im1);
ImageView image2 = (ImageView)findViewById(R.id.im2);
Intent i = getIntent();
image1.setImageBitmap(BitmapFactory.decodeFile(i.getStringExtra(ITEM_IMAGE1)));
image2.setImageBitmap(BitmapFactory.decodeFile(i.getStringExtra(ITEM_IMAGE2)));
另一個解決方案可能是將StringArray
用於多個圖像。 在第一個活動中,您可以填充數組:
// populate the array
String[] images = new String[] { image1, image2 };
// pass the array
Intent i = new Intent(getApplicationContext(), ViewClothes.class);
i.putExtra(ARRAY_IMAGES, images);
並傳遞到Intent中以如下方式檢索它:
// retrieve it
String[] images_passed = getIntent().getStringArrayExtra(ARRAY_IMAGES);
// show the images
image1.setImageBitmap(BitmapFactory.decodeFile(images_passed[0]));
image2.setImageBitmap(BitmapFactory.decodeFile(images_passed[1]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.