首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PreferenceFragment或PreferenceFragmentCompat

PreferenceFragment或PreferenceFragmentCompat
EN

Stack Overflow用户
提问于 2017-03-12 15:51:32
回答 1查看 766关注 0票数 0

我正在使用PreferenceFragment并尝试调用DialogFragment

SettingsActivity.java

代码语言:javascript
复制
public class SettingsActivity extends AppCompatActivity{

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getFragmentManager()
        .beginTransaction()
        .replace(android.R.id.content, new SettingsFragment())
        .commit();
    }

    public static class SettingsFragment extends PreferenceFragment {

        @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.pref_settings);

            Preference switchPreference = (SwitchPreference) findPreference("switch_preference_1");
            switchPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference, Object newValue) {
                    AcceptDialog dialog = new AcceptDialog();
                    dialog.setTargetFragment(SettingsFragment.this, 0);
                    return true;
                }
            });
        }
    }
}

AcceptDialog.java

代码语言:javascript
复制
public class AcceptDialog extends DialogFragment {
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        new AlertDialog.Builder(getActivity())
                .setTitle("Title")
                .setMessage("Message")
                .create();
    }
}

dialog.setTargetFragment( .)中的错误;

代码语言:javascript
复制
Wrong 1st argument type. Found: 'com.android.cmdev.prefcompattest.SettingsActivity.SettingsFragment', required: 'android.support.v4.app.Fragment'

我在PreferenceFragmentCompat上更改了PreferenceFragmentCompat,这个错误消失了,但是在片段事务中出现了新的错误。

代码语言:javascript
复制
getFragmentManager()
        .beginTransaction()
        .replace(android.R.id.content, new SettingsFragment())
        .commit();

错误:

代码语言:javascript
复制
Wrong 2nd argument type. Found: 'com.android.cmdev.prefcompattest.SettingsActivity.SettingsFragment', required: 'android.app.Fragment'

有什么不对,怎么纠正?

EN

回答 1

Stack Overflow用户

发布于 2017-03-12 15:53:43

将getSupportFragmentManager与支持片段一起使用而不是getFragmentManager

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42749528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档