0

ギャラリーを作成しています。すべての画像を表示するグリッド ビューがあります。チェックボックスを使用して複数の画像を選択すると、私が行った別のインテントが開始されますが、この新しいインテントで選択した画像を表示したいと思います。

事前に感謝します。

4

1 に答える 1

0

基本的にあなたが望むのは、トーストの代わりにボタンをクリックして新しいアクティビティを開始し、選択した画像を表示することですよね?

72行目を確認してください。selectImages = selectImages + arrPath[i] + "|";

これは画像へのパスであり、iは、どの画像が選択されているかがわかるため、何らかの方法で保存したい位置です。たとえば、リストまたは配列として保存し、ボタンをクリックして新しいアクティビティを開始し、このリストまたは配列をバンドルで渡し、新しいアクティビティで画像IDを取得し、ビットマップ配列のサムネイル[imageID]で画像を探します。の可視性を変更する必要があります

private Bitmap[] thumbnails;

公開する。試してみて、成功したかどうかをお知らせください。成功しなかった場合は、さらにサポートさせていただきます;)

編集 ここにいくつかのヘルプがあります、バンドルでint配列を渡します

    Intent myIntent = new Intent(A.this, B.class);
    intent.putIntegerArrayListExtra("arr", pics);//pics is your array with id-s of bitmaps
    startActivity(myIntent);

ボタンのonClickでトーストする代わりにそれを追加し、次のアクティビティで次のように読みます。

Intent i = getIntent();  
integer [] fromApics = i.getIntegerArrayListExtra("arr");

編集2

OK私はあなたのためにいくつかのコードを書きますが、それを読んでそれを理解しようとします:あなたの主な活動でこれを変更してください:

selectBtn.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            final int len = thumbnailsselection.length;
            int cnt = 0;
            String selectImages = "";
            ArrayList<Integer> pics=new ArrayList(thumbnailsselection.length);
            for (int i =0; i<len; i++)
            {
                if (thumbnailsselection[i]){
                    pics.add(i);
                    cnt++;
                    selectImages = selectImages + arrPath[i] + "|";

                }
            }
            if (cnt == 0){
                Toast.makeText(getApplicationContext(),
                        "Please select at least one image",
                        Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(),
                        "You've selected Total " + cnt + " image(s).",
                        Toast.LENGTH_LONG).show();
                Log.d("SelectedImages", selectImages);
                Intent myIntent = new Intent(AndroidCustomGalleryActivity.this, Test.class);
                 myIntent.putIntegerArrayListExtra("arr", pics);//pics is your array with id-s of bitmaps
                startActivity(myIntent);
            }
        }
    });

また、次のページの可視性を上部に設定します。

public static String[] arrPath;

次のようなTestという新しいアクティビティを作成します。

package com.isummation.customgallery;

import java.util.ArrayList;

import android.app.Activity; import android.content.Intent; android.os.Bundleをインポートします。

public class Test extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent i = getIntent();  
    ArrayList<Integer> fromApics = i.getIntegerArrayListExtra("arr");
    for(int y=0;y<fromApics.size();y++){
        System.out.println(AndroidCustomGalleryActivity.arrPath[fromApics.get(y)].toString());
    }

}

}

マニフェストファイルにもアクティビティを追加することを忘れないでください。logcatで印刷された画像パスを確認できます。テストアクティビティをカスタマイズし、選択した画像などのギャラリーを作成するのはあなたに任せます。

于 2012-12-05T11:36:58.767 に答える