簡體   English   中英

ANDROID-2個不同的意圖打開相同的活動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM