0

写真をキャプチャして画像ビューに表示しようとしています。

        public class next extends Activity{

         public void onCreate(Bundle savedInstanceState) {
                 super.onCreate(savedInstanceState);
                 setContentView(R.layout.next);         Button cbutton = (Button) findViewById(R.id.capture); /* Capture Photo */
                    cbutton.setOnClickListener(new OnClickListener() {

                public void onClick(View v)         { 
                        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                        startActivityForResult(intent,0);       }       });

             }
         @Override  
public void startActivityForResult(Intent intent, int requestCode) {        
ImageView iv
         = (ImageView) findViewById(R.id.imageView1);   
        if(requestCode == 0)        
    {       Bitmap theImage = (Bitmap) data.getExtras().get("data");
            iv.setImageBitmap(theImage);        
}}}

だから、これは私が行ったコードです。今問題は、「データ」の下に赤い線が表示されていることです

Bitmap theImage = (Bitmap) ***data***.getExtras().get("data");

そして、私はその理由を知りません.誰かが私が間違ったことや私の問題に対する他の解決策を説明してもらえますか?

4

2 に答える 2

0

Variable data is neither declared no passed as parameter to your method, therefor it's marked red.

于 2012-08-25T18:43:06.370 に答える
0

このコードの問題は、間違ったメソッドをオーバーライドしていることでした:

public void startActivityForResult(Intent intent, int requestCode) {        
ImageView iv
         = (ImageView) findViewById(R.id.imageView1);   
        if(requestCode == 0)        
    {       Bitmap theImage = (Bitmap) data.getExtras().get("data");
            iv.setImageBitmap(theImage);        
}}

結果がアクティビティから得られる場合、次の方法で表示されるためです。

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


        //ImageView iv = (ImageView) findViewById(R.id.imageView1);
        if(requestCode == 1)
        {

        Bitmap theImage = (Bitmap) data.getExtras().get("data");

                iv.setImageBitmap(theImage);
        }

それでおしまい :)

    }
于 2012-08-26T19:46:59.683 に答える