0

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

我有一个 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!谁能告诉我我在这里缺少什么,或者是否有人面临同样的问题?

4

1 回答 1

0

它被调用了,但是你在fragment中设置的请求代码在你的 onActivityResultactivity的方法的参数中是不同的!

于 2013-08-27T14:16:06.700 回答