Java &引用;尝试对空对象引用调用虚方法;尝试从activity子类启动TractivityForresult时
我正在为一个应用程序编写一个插件,在这个应用程序中,我需要创建一个对话框窗口,允许用户拍照供以后使用。我无法访问应用程序的主活动以使用onActivityResult,因此我正在尝试使用onActivityResult创建一个活动子类,以调用startActivityForResuJava &引用;尝试对空对象引用调用虚方法;尝试从activity子类启动TractivityForresult时,java,android,Java,Android,我正在为一个应用程序编写一个插件,在这个应用程序中,我需要创建一个对话框窗口,允许用户拍照供以后使用。我无法访问应用程序的主活动以使用onActivityResult,因此我正在尝试使用onActivityResult创建一个活动子类,以调用startActivityForResu public class UserAddDialog { private AlertDialog dialog; private View dialogView; private Imag
public class UserAddDialog {
private AlertDialog dialog;
private View dialogView;
private ImageView tempPhoto;
private Context c;
public UserAddDialog build(final Context context, LayoutInflater inflater) {
c = context;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
final Activity act = (Activity) context;
builder.setTitle("Add person to TLS logbook");
dialogView = inflater.inflate(R.layout.user_role_layout, null);
builder.setView(dialogView);
dialog = builder.create();
tempPhoto = (ImageView) dialogView.findViewById(R.id.takenPic);
Button takePicture = (Button) dialogView.findViewById(R.id.takePhoto);
takePicture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final int REQUEST_IMAGE_CAPTURE = 1;
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(act.getPackageManager()) != null) {
PictureAct p = new PictureAct();
p.startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
});
return this;
}
public void show() {dialog.show();}
class PictureAct extends Activity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap photo = (Bitmap) extras.get("data");
tempPhoto.setImageBitmap(photo);
}
}
}
}
我试图在空对象引用上调用虚拟方法“android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()”
在线
p.startActivityForResult(获取图片内容、请求图像捕获)代码>
有什么想法吗?我还尝试创建一个活动,而不是创建一个对话框,但我需要在应用程序活动中使用生成的图片,而我无法从新活动中访问该图片。我还使用api 29,因此无法使用片段,因为它们已被弃用。要启动活动或activityForResult from activity:
startActivityForResult( intent , code );
从片段:
getActivity().startActivityForResult( yourIntent , yourRequestCode);
其他地方:
Activity act = ( Activity ) context;
act.startActivityForResult( intent , code );
将p替换为活动上下文。PictureAct的上下文?我不知道你的意思。你能举个例子吗?getActivity对dialog类不可用,我不相信这会触发PicActivity的onActivityResult,使dialog扩展DialogFragment
,或者用act
替换getActivity,因为你已经在这里定义了最终活动act=(活动)上下文代码>Idk,如果可以的话。我没有试过。我现在正在成功地开始这项活动,但我现在的问题是,我无法在班上获得活动结果。我在将dialog类设置为dialogfragment时也遇到了问题,因为它在288年也被弃用。您需要使用androidx.fragment.app.dialogfragment