2016-07-01 4 views
-2

に1つのアクティビティから複数の画像を確認しました。そのボタンをクリックすると、チェックされたアイテムの詳細が別のアクティビティに渡され、他のリストビューに表示されます。選択した値を渡すことはできますが、イメージを渡すことはできません。画像はドロウアブルフォルダにあります。ありがとうございました。ここでパスは、私は、チェックボックスのImageViewのとのTextViewを持つカスタムリストビューを持っており、リストビュー、下のボタンがあり、別の

はコードです:

subscribe.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      String data = ""; 
      ArrayList<Item> stList = ((OurServiceAdapter) nAdapter) 
       .getAllData(); 

      for (int i = 0; i < stList.size(); i++) { 
       Item singleStudent = stList.get(i); 
       if (singleStudent.isCheckbox() == true) { 
         name.add(singleStudent.getName().toString()); 
         img.add(singleStudent.getImage()); 
       data = data + "\n" + singleStudent.getName().toString(); 



       } 

       } 
       // byte[] imgs = singleStudent.getImage(); 
       Intent intent = new Intent(ActivityOurServices.this, ActivityServicesForm.class); 
       intent.putStringArrayListExtra("key", name); 
       //intent.putIntegerArrayListExtra("img", img); 
       startActivity(intent); 



     } 
    }); 
} 
+0

簡単な方法にしますこれはチェックされたアイテムの位置を取得することであり、別のアクティビティではスイッチのステートメントを使用して正しいイメージを取得します –

+0

サンプルを与えることができません。 – Nitesh

+0

写真の数は?定数ですか? –

答えて

1

あなたはバイト配列として渡すと、次の画面に表示するビットマップを構築することができます。インテントを使用してサムネイル、アイコンなどの小さな画像を送信することができます。これはバインドの失敗をもたらします。

送信者の活動

Intent _intent = new Intent(this, newscreen.class); 
Bitmap _bitmap; // your bitmap 
ByteArrayOutputStream _bs = new ByteArrayOutputStream(); 
_bitmap.compress(Bitmap.CompressFormat.PNG, 50, _bs); 
i.putExtra("byteArray", _bs.toByteArray()); 
startActivity(i); 

レシーバー活動

if(getIntent().hasExtra("byteArray")) { 
ImageView _imv= new ImageView(this); 
Bitmap _bitmap = BitmapFactory.decodeByteArray(
     getIntent().getByteArrayExtra("byteArray"),0,getIntent().getByteArrayExtra("byteArray").length);   
_imv.setImageBitmap(_bitmap); 
} 

これは動作しますが、これは巨大な行き過ぎになります。あなたがボタンを押したときに、今

//first : for each imageView inside list you must to set tag ,for example ; 
imageView0.setTag(R.drawable.image_0); 
imageView1.setTag(R.drawable.image_1); 
. 
. 
. 
imageViewN.setTag(R.drawable.image_N); 

:あなたはInteger型のArrayListなど、すべての画像を渡すことができます一つは、パスを渡すことができ、それははるかに軽い道

+0

を増加させることができました。 – Nitesh

+0

はい、あなたは小さな画像を渡すために覚えてputExtra.Butで異なるキーを介して複数の画像を渡すことができ、それを添付する方法を、複数の画像を渡す必要が – Shashank

1

に終ら

ArrayList<Integer> checkedImageSrcId = new ArrayLIst<Integer> ; 

for (int i = 0; i < stList.size(); i++) { 
      Item singleStudent = stList.get(i); 
      if (singleStudent.isCheckbox() == true) { 
        name.add(singleStudent.getName().toString()); 
        // img.add(singleStudent.getImage()); 
        // you most to get checked imageViews Tag and i dont have an idea about how to get those 
        checkedImageSrcId.add(getImageViewTagAtPostion(i)); 
      data = data + "\n" + singleStudent.getName().toString(); 

      } 

      } 
      // byte[] imgs = singleStudent.getImage(); 
      Intent intent = new Intent(ActivityOurServices.this, ActivityServicesForm.class); 
      intent.putStringArrayListExtra("key", name); 
      intent.putIntegerArrayListExtra("img", checkedImageSrcId); 
      startActivity(intent); 
+0

こんにちは私はリストビューを使用しているので、このタグ – Nitesh

+0

を追加し、これを第2アクティビティ – Nitesh

+0

のlistViewアダプタでタグを抽出するにはどうすればいいですか? imageView drawable srcをどこで設定しましたか? –

関連する問題