在Android中的非活动类中使用startActivityForResult()

时间:2014-01-09 07:07:38

标签: android android-activity

我在一个活动类中膨胀一个类(没有活动)。现在我想要做的是我想要从非活动类中打开Gallery,我需要使用“startActivityForResult()”并在同一个非活动类中覆盖“onActivityResult()”。

我无法做到这一点,虽然我找到了一些解决方案,我可以传递Activity类的实例,但它不起作用。

任何人都可以提供工作解决方案。

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                String strFileName = "temp.jpg";

                fileCameraImage = new File(Environment.getExternalStorageDirectory(), "/PAPERCLIP");
                if (!fileCameraImage.exists()) 
                {
                    fileCameraImage.mkdirs();
                }
                file_paperclip = new File(fileCameraImage, strFileName);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file_paperclip));
                startActivityForResult(intent, 1);

现在,我需要在从内部媒体中选择所需图像后返回此非活动类。但我无法覆盖此非活动类中的“onActivityResult()”。

2 个答案:

答案 0 :(得分:3)

您可以尝试使用((Activity) mContext).startActivityForResult(yourIntent,code);

希望有所帮助......

答案 1 :(得分:1)

以这种方式尝试:

    public class TestNonActivity{

    Activity activity;

    TestNonActivity(Activity activity){
    this.activity=activity;
    }
    public void startConnection() {

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        String strFileName = "temp.jpg";

        fileCameraImage = new File(Environment.getExternalStorageDirectory(), "/PAPERCLIP");
        if (!fileCameraImage.exists()) 
        {
            fileCameraImage.mkdirs();
        }
        file_paperclip = new File(fileCameraImage, strFileName);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file_paperclip));
        activity.startActivityForResult(intent, 1);
    } 


}

您可以通过任何活动以这种方式创建TestNonActivity类:

TestNonActivity testAct=new TestNonActivity(this);

您需要调用此testAct.startConnection()