在Android中未触发onActivityResult
我正在制作一个android应用程序,它从相机上获取图像,然后显示出来。但是,我无法显示单击的图像,可能是因为未触发onActivityResult() 这是我的一段代码。有人能告诉我我错过了什么吗在Android中未触发onActivityResult,android,camera,android-camera,Android,Camera,Android Camera,我正在制作一个android应用程序,它从相机上获取图像,然后显示出来。但是,我无法显示单击的图像,可能是因为未触发onActivityResult() 这是我的一段代码。有人能告诉我我错过了什么吗 public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstance
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);
}
}
});
}
}
onActivityResult()必须在活动类中声明(而不是在onClickListener中)。如果您更正当前onActivityResult()声明之前的“@override”('o'必须大写),键入错误,您将明白我的意思
看
下面是您的班级应该是什么样子:
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);
}
}
}
onActivityResult()必须在活动类中声明(而不是在onClickListener中)。如果您更正当前onActivityResult()声明之前的“@override”('o'必须大写),键入错误,您将明白我的意思
看
下面是您的班级应该是什么样子:
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);
}
}
}
我应该删除@Override并将onActivityResult()放在Activity类之外吗?\@Override注释告诉编译器您要声明的函数应该覆盖父类中的某些内容。目前,您键入\@Override的方式有误——o没有大写!因此,编译器不会警告您覆盖无效。您应该将onActivityResult声明为直接位于活动类内部。我更新了我的答案…我是否应该删除@Override并将onActivityResult()放在Activity类之外?\@Override注释告诉编译器您声明的函数应该覆盖父类中的某些内容。目前,您键入\@Override的方式有误——o没有大写!因此,编译器不会警告您覆盖无效。您应该将onActivityResult声明为直接位于活动类内部。我更新了我的答案。。。