0

私の Android アプリケーションには「プレーヤーの管理」ビューがあり、その中に「プレーヤーの追加」ビューがあります。「プレーヤーの追加」ビューでカメラにアクセスしているため、onActivityResult をオーバーライドしています。これにヒットすると、「プレーヤーの管理」アクティビティ内で、「プレーヤーの追加」ビューが null になります。コードのサンプルを次に示します。

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");
        } 
    }
}
}

したがって、それを行った後、onActivity の結果で addPlayerView は null になります。正直なところ、私は Android と Java に非常に慣れていないため、MVC の経験がない ac# Web 開発者であるため、基本的にどのように機能するかについて誤解している可能性があります。しかし、どんな助けでも大歓迎です!

ありがとう、アンディ

4

1 に答える 1

1

イベント ハンドラの上 (つまり、onEvent() の外) に次の行を記述します。

ManagePlayersActivity.this.addPlayerView = AddPlayerViewFactory.create(context);

于 2012-10-31T10:31:58.187 に答える