java - 如何在另一个 Activity 中使用来自一个 Activity 的方法?
问题描述
我想onImageFromCameraClick
在另一个 Activity 中使用我的方法,但是当我尝试从我的另一个 Activity 中使用它时,会导致以下错误:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.content.pm.PackageManager android.content.Context.getPackageManager()'
如何在另一个 Activity 中使用该方法?
方法onImageFromCameraClick()
:
public void onImageFromCameraClick() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null) {
File photoFile = null;
try { photoFile = createImageFile();
} catch (IOException e) {
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG);
}
if (photoFile != null) {
Uri photoUri = FileProvider.getUriForFile(this,
getApplicationContext().getPackageName() + ".fileprovider", photoFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
} // inner if end
} // outer if end
} // onImageFromCameraClick END
其他活动:
case "cameraStart":
Handler mHandler = new Handler(Looper.getMainLooper());
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
FaceDetectionActivity fm = new FaceDetectionActivity();
fm.onImageFromCameraClick();
} }, 0);
break; }
break;
// Code end
解决方案
下面是不可能的。
FaceDetectionActivity fm = new FaceDetectionActivity();
fm.onImageFromCameraClick();
在给出解决方案之前,我建议你先阅读 Android。
现在的解决方案是移动onImageFromCameraClick()
到实用程序类,并将 Context 作为onImageFromCameraClick(Context context){}
. 使用此上下文而不是getApplicationContext()
推荐阅读
- hyperledger-fabric - 在 hyperledger 结构中使用非管理员卡和 composer-rest-server
- python - 设置对象在套接字模块中没有属性“编码”
- r - 在R中的数据框中旋转行和列
- mysql - 更新语句中的 MySQL 语法错误,NodeJS(MySQL2) 模块
- python - Python:如何在我的文件结果之后再打印一行?
- java - Firestore whereEqualTo、orderBy 和 limit(1) 不起作用
- html - 这个文本区域周围的额外空间来自哪里?
- git - 在 git 克隆一个 repo 之后,我只得到一个分支而不是所有分支。Android Studio 无法识别其余部分
- c# - 如何递归地编写插值搜索?- C#
- ios - 自动布局后从 Xib 加载视图获取调整框架子视图的大小