【问题标题】:Create Class to instantiate PreferenceFragment创建类以实例化 PreferenceFragment
【发布时间】:2023-03-09 11:35:01
【问题描述】:

我有一个带有片段的应用程序。我无法让 PreferenceFragment 正常工作。其中一个片段是设置页面。为此,我希望使用 PreferenceFragment,但是我使用与 PreferenceFragment 不兼容的 android.support.v4.app.FragmentManager 开发了我的应用程序。下面的链接有一个描述和链接到适用于 v4 的代码。

https://github.com/codepath/android_guides/wiki/Settings-with-PreferenceFragment

https://github.com/kolavar/android-support-v4-preferencefragment

我的主要活动

private class CustomAdapter extends FragmentPagerAdapter {

private String fragments [] = {"Event","Gallery","Match","Settings"};

public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) {
    super(supportFragmentManager);
}

@Override
public Fragment getItem(int position) {
    switch (position){
        case 0:
            return new event();
        case 1:
            return new gallery();
        case 2:
            return new match();
        case 3:
            return new PreferenceFragment();
        default:
            return null;
    }
}

错误:“PreferenceFragment”是抽象的,无法实例化。

偏好片段

public abstract class PreferenceFragment extends Fragment implements
        PreferenceManagerCompat.OnPreferenceTreeClickListener {

    private static final String PREFERENCES_TAG = "android:preferences";

我被告知我不能直接实例化 PreferenceFragment,我必须创建一个扩展它的类。有人可以解释在这种情况下我将如何去做吗?太感谢了! :-)

【问题讨论】:

    标签: android android-fragments preferencefragment


    【解决方案1】:

    例如:

    public class MyPreferenceFragment extends PreferenceFragment
    {
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.fragment_preference);
        }
    }
    

    及其关联的 XML 文件:

    <?xml version="1.0" encoding="utf-8"?>
    
    <PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android">
    
        <PreferenceCategory 
            android:title="FOO">
    
            <CheckBoxPreference
                android:key="checkBoxPref"
                android:title="check it out"
                android:summary="click this little box"/>
    
        </PreferenceCategory>
    
    </PreferenceScreen>
    

    来源:How do you create Preference Activity and Preference Fragment on Android?

    【讨论】:

    • 谢谢!实际上,我早就做到了,但是当我运行该应用程序时,设置页面显示为空白。我查看了 fragment_preference.xml,它缺少 标签。它的 标签不起作用。感谢一百万您的帮助! :-)
    猜你喜欢
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 2014-03-03
    相关资源
    最近更新 更多