![](/img/trans.png)
[英]How to call a public method of an Activity from another Android Activity
[英]How to call takePicture() method from another activity in android?
我有一个主要的活动类,我在其中编写了如下的takePicturefromCamera()方法:
public void takePicturefromCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
try {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
mImageCaptureUri = Uri.fromFile(mFileTemp);
}
else {
// The solution is taken from here: http://stackoverflow.com/questions/10042695/how-to-get-camera-result-as-a-uri-in-data-folder
mImageCaptureUri = InternalStorageContentProvider.CONTENT_URI;
}
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, REQUEST_CODE_TAKE_PICTURE);
} catch (ActivityNotFoundException e) {
Log.d("TAG", "cannot take picture", e);
}
}
现在我有另一个类,我正在做一些裁剪部分,我的要求是,如果裁剪用户感觉他想再拍一张其他照片而不是以前的照片,我想在某些按钮单击时在主要活动类的takePicturefromCamera()方法上方调用。 谁能帮助我,我该怎么做。 我已经尝试过这样做:
retake_button.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
// setResult(RESULT_CANCELED);
main m = new main();
m.takePicturefromCamera();
}
});
但是它在mImageCaptureUri = Uri.fromFile(mFileTemp);
时给了我NullPointerException错误mImageCaptureUri = Uri.fromFile(mFileTemp);
请帮我。
我建议您将takePicturefromCamera()
保留在单独的类中,然后调用此方法,将activitycontext和所需的数据传递给它。
否则,您可以使Activity2 extend Activity1
并使用takePicturefromCamera()
。
将该方法设置为静态,以便可以在应用程序中的任何位置使用它。
还要在函数中添加一个参数“ File”。 这样,您还可以灵活地对应用程序中的不同文件对象使用相同的功能。
希望这会帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.