活动中的onActivityResult未在API 18中的Fragment中的startActivityForResult之后调用

时间:2013-08-16 07:06:19

标签: android android-intent android-fragments

我希望用户从他的图库中选择一张图片,因此我有以下内容。

我有一个SettingsActivity,其中说:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        //do sth here
    }
}

在此SettingsActivity的onCreateMethod中,我执行:

getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();

然后我有了SettingsFragment,它在onCreate()

中执行以下操作
Preference pref = (Preference) findPreference(SettingsConstants.Key.PREF_BACKGROUND_IMAGE);
    pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
            intent.putExtra(Intent.CATEGORY_OPENABLE, true);
            intent.setAction(Intent.ACTION_GET_CONTENT);
            getActivity().startActivityForResult(Intent.createChooser(intent, "Select Picture"), SettingsActivity.RESULT_LOAD_IMAGE);
            return true;
        }
    });

这在4.2中有效 - 但不再使用4.3了!谁能告诉我这里我缺少什么,或者是否有人面临同样的问题?

1 个答案:

答案 0 :(得分:0)

它被调用,但片段中设置的请求代码u在你的参数中是不同的 onActivityResult活动的方法!