Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 父活动中onActivityResult中的Android子视图为空_Java_Android_Android Intent - Fatal编程技术网

Java 父活动中onActivityResult中的Android子视图为空

Java 父活动中onActivityResult中的Android子视图为空,java,android,android-intent,Java,Android,Android Intent,在我的Android应用程序中有一个视图“管理玩家”,其中有一个“添加玩家”视图。在“添加播放器”视图中,我正在访问相机,因此我在onActivityResult上有一个覆盖。当点击此按钮时,在“管理玩家”活动中,“添加玩家”视图现在为空。以下是代码示例: public class ManagePlayersActivity { private AddPlayerView addPlayerView = null; private ManagePlayersView view;

在我的Android应用程序中有一个视图“管理玩家”,其中有一个“添加玩家”视图。在“添加播放器”视图中,我正在访问相机,因此我在onActivityResult上有一个覆盖。当点击此按钮时,在“管理玩家”活动中,“添加玩家”视图现在为空。以下是代码示例:

public class ManagePlayersActivity {

    private AddPlayerView addPlayerView = null;
    private ManagePlayersView view;
    private Context context;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    context = this;

    view = ManagePlayersViewFactory.create(this);
    setContentView(view.asView());

        public void onEvent(ClickEvent event) {
            final Dialog d = new Dialog(context);
            ManagePlayersActivity.this.addPlayerView = AddPlayerViewFactory.create(context);

            ManagePlayersActivity.this.addPlayerView.setButtonPhotoPickerOnClickListener(new EventListener<ClickEvent>() {
                public void onEvent(ClickEvent event) {

                    ManagePlayersActivity.this.addPlayerView.setPlayerPhoto("Setting Photo");

                    PackageManager pm = context.getPackageManager();

                    if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {

                        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                            startActivityForResult(cameraIntent, CAMERA_REQUEST);
                    }                   
                }

            });

            d.show();
        }
    });
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_REQUEST) {
        if (resultCode == RESULT_OK) {
            ManagePlayersActivity.this.addPlayerView.setPlayerPhoto("Photo set");
        } 
    }
}
}
公共类管理器PlayerActivity{
私有AddPlayerView AddPlayerView=null;
私有管理器PlayerView视图;
私人语境;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
上下文=这个;
view=managePlayerViewFactory.create(此);
setContentView(view.asView());
public void onEvent(单击事件){
最终对话框d=新对话框(上下文);
ManagerPlayerActivity.this.addPlayerView=AddPlayerViewFactory.create(上下文);
managePlayerActivity.this.addPlayerView.setButtonPhotoPickerOnClickListener(新事件监听器(){
public void onEvent(单击事件){
managePlayerActivity.this.addPlayerView.setPlayerPhoto(“设置照片”);
PackageManager pm=context.getPackageManager();
if(pm.hasSystemFeature(PackageManager.FEATURE_摄像头)){
Intent cameraIntent=新的Intent(MediaStore.ACTION\u IMAGE\u CAPTURE);
startActivityForResult(摄像机帐篷、摄像机请求);
}                   
}
});
d、 show();
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
if(requestCode==CAMERA\u请求){
if(resultCode==RESULT\u OK){
managePlayerActivity.this.addPlayerView.setPlayerPhoto(“照片集”);
} 
}
}
}
因此,执行此操作后,onActivity结果中的addPlayerView为null。老实说,我对Android和Java非常陌生,我是一名c#web开发人员,没有MVC方面的经验,因此这可能是对其基本工作原理的误解。但是,任何帮助都将不胜感激

谢谢,
Andy

将这一行写在事件处理程序上方(即,在OneEvent()之外):


ManagerPlayerActivity.this.addPlayerView=AddPlayerViewFactory.create(上下文)

非常感谢。这就阻止了它为空。但现在的问题是视图不再打开,并返回到父视图,“添加播放器”视图关闭。这是一个简单的改变,作为其中的一部分,还是一个更广泛的问题?是相机没有被调用,还是整个视图没有打开?