-1

あるアクティビティから別のアクティビティに画像を渡すために、以下のコードを試しています。

        Bundle search_opt=new Bundle();
         search_opt.putByteArray("key1", image1);
        search_opt.putByteArray("key2", image2);
        search_opt.putByteArray("key3", image3);

        Intent view=new Intent(CameraOpen.this,insertion_db.class);
        view.putExtras(search_opt);
        startActivity(view);

しかし、私はエラーが発生しています

        Bundle search_opt=new Bundle();
        error :Unreachable code
4

5 に答える 5

0

これを行うことで機能します

    case R.id.okImage:
        startother();
        break;
    }
}


private void startother() {         

    Intent view=new Intent(CameraOpen.this,insertion_db.class);
    view.putExtras(search_opt);
    startActivity(view);    
   }


@Override   

protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);

    if(resultCode==RESULT_OK && counter==1 ){
                    Bundle extras=data.getExtras();
                    bmp1=(Bitmap) extras.get("data");
        iv1.setImageBitmap(bmp1);
                    byte[] image1 =Utilities.getBytes(bmp1);                       
                    search_opt.putByteArray("key1", image1);
        counter++; 
             }

    else if(resultCode==RESULT_OK && counter==2){
                    Bundle extras=data.getExtras();
                    bmp2=(Bitmap) extras.get("data");
        iv2.setImageBitmap(bmp2);
                    byte[] image2 =Utilities.getBytes(bmp2);               
                    search_opt.putByteArray("key2", image2);
        counter++;
    }       
           else if(resultCode==RESULT_OK && counter==3){  
                Bundle extras=data.getExtras(); 
                bmp3=(Bitmap) extras.get("data");
            iv3.setImageBitmap(bmp3);   
                byte[] image3 =Utilities.getBytes(bmp3);
        search_opt.putByteArray("key3", image3); }

}
}

于 2012-12-14T20:49:30.163 に答える
0

私は前にこれを試していました

@Override
public void onClick(View v) {

  switch (v.getId()){
    case R.id.ibTakePic:
     for(int x=0;x<3;x++)
       {
        i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(i,cameraData);
       }
        break;
    case R.id.okImage:
        Bundle search_opt=new Bundle();
       search_opt.putByteArray("key1", image1);
       search_opt.putByteArray("key2", image2);
       search_opt.putByteArray("key3", image3);

       Intent view=new Intent(CameraOpen.this,insertion_db.class);
       view.putExtras(search_opt);
       startActivity(view);

        break;
    }
}

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  super.onActivityResult(requestCode, resultCode, data);

  if(resultCode==RESULT_OK && counter==1 ){       
                    Bundle extras=data.getExtras();
                    bmp1=(Bitmap) extras.get("data");
      iv1.setImageBitmap(bmp1);
                    byte[] image1 =Utilities.getBytes(bmp1);
                    counter++;  
             }

  else if(resultCode==RESULT_OK && counter==2){
                   Bundle extras=data.getExtras();
                   bmp2=(Bitmap) extras.get("data");
         iv2.setImageBitmap(bmp2);
                   byte[] image2 =Utilities.getBytes(bmp2);
                   counter++;
  }
            else if(resultCode==RESULT_OK && counter==3){
                  Bundle extras=data.getExtras();
                  bmp3=(Bitmap) extras.get("data");
        iv3.setImageBitmap(bmp3);
                  byte[] image3 = Utilities.getBytes(bmp3);
              } } }
于 2012-12-14T20:36:11.037 に答える
0

画像を渡す代わりに、画像をディスクに保存し、パス/ファイル名を文字列として他のアクティビティに渡すことができます。

于 2012-12-14T20:54:38.900 に答える
0

コードを投稿していただきありがとうございます。

以前に使用していたコードを新しいプロジェクトに入れました。(ダミーの変数とクラスをいくつか追加した後) 到達不能なコード エラーを発生させることなく正常にコンパイルされます。

したがって、何が問題だったのかについては推測することしかできません。case R.id.okImage ステートメントを数行下に移動すると、通常のプログラム実行フローが Bundle 行に到達できなくなり、到達不能コード エラー メッセージが表示されます。ケースの R.id.okImage 行をコメントアウトすることで、同様のメッセージを取得することもできます。

// From the switch statement, program execution continues at either
// 1a) the case statement R.id.ibTakePic
// 1b) the case statement R.id.okImage
// 2a) a default statement (if you have entered one)
// 2b) or otherwise at the line following the switch
switch (v.getId()) {
    case R.id.ibTakePic:  // 1a
        for(int x=0;x<3;x++)
        {
            i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(i,cameraData);
        }
        break;

        // Thus the program will never run this code as it is after the break from the
        // previous statement and before the case line below.
        // This is an example of unreachable code
        Bundle search_opt=new Bundle();
        search_opt.putByteArray("key1", image1);
        search_opt.putByteArray("key2", image2);
        search_opt.putByteArray("key3", image3);

    case R.id.okImage:  // 1b
        Intent view=new Intent();
        view.putExtras(search_opt);
        startActivity(view);
        break;
    }
    // 2b
}
于 2012-12-13T23:58:13.613 に答える