1

カメラから画像を取得して表示するAndroidアプリケーションを作成しています。ただし、おそらくonActivityResult()トリガーされていないため、クリックした画像を表示できません。

これが私のコードです。誰が私に欠けているものを提案できますか?

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final int CAMERA_PIC_REQUEST = 1337; 
        Button b = (Button) findViewById(R.id.button1);
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
                startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

            }
            @override
            public void onActivityResult(int requestCode, int resultCode, Intent data) {
                Log.d("Message1", "I reached 2");
                 //super.onActivityResult(requestCode, resultCode, data);
                if (requestCode == CAMERA_PIC_REQUEST) {
                    // do something
                    Bitmap thumbnail = (Bitmap) data.getExtras().get("data");  
                    ImageView image = (ImageView) findViewById(R.id.imageView1);  
                    image.setImageBitmap(thumbnail); 

                }
            }




        });
    }
} 
4

1 に答える 1

1

onActivityResult() は、(onClickListener 内ではなく) Activity クラスで宣言する必要があります。「@override」(「o」は大文字にする必要があります)を修正すると、現在の onActivityResult() 宣言の前にタイプミスがあり、私の意味がわかります...

Activity.onActivityResult()のドキュメントを参照してください。

クラスは次のようになります。

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final int CAMERA_PIC_REQUEST = 1337; 
        Button b = (Button) findViewById(R.id.button1);
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
                startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

            }
        });
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
       Log.d("Message1", "I reached 2");
       //super.onActivityResult(requestCode, resultCode, data);
       if (requestCode == CAMERA_PIC_REQUEST) {
         // do something
         Bitmap thumbnail = (Bitmap) data.getExtras().get("data");  
         ImageView image = (ImageView) findViewById(R.id.imageView1);  
         image.setImageBitmap(thumbnail); 
       }
     }

} 
于 2012-04-09T03:30:46.877 に答える