设置上的Multine线标签

时间:2018-08-02 13:14:22

标签: android sharedpreferences android-preferences android-settings

我想创建一个带有标题和副标题项目的设置活动。

我在这里检查了很多文档甚至其他文章,人们说这是不可能的... android默认设置页面有很多内容:  enter image description here

很抱歉用葡萄牙语写的图片,但是写的没关系,关键是在android上建立的设置页面上有很多标题/字幕项目(并且它在许多其他屏幕中都发生过)

我想使用android默认Preference API来实现。有可能吗?

1 个答案:

答案 0 :(得分:1)

是的,有可能。以下是一种快速的解决方案(可能会根据您的需要进行改进和调整):

public class SettingsActivity extends Activity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);
        if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                    .add(R.id.settings_fragment, new PrefsFragment()).commit();
        }
    }

    public static class PrefsFragment extends PreferenceFragment {

        public PrefsFragment(){}

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            // Load the preferences from an XML resource
            addPreferencesFromResource(R.xml.settings);
        }
    }
}

activity_settings.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment
        android:id="@+id/settings_fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="com.vb.myapplication.SettingsActivity$PrefsFragment" />
</LinearLayout>

settings.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:key="keyCategory"
        android:title="titleCategory">

        <CheckBoxPreference
            android:key="keyCheckPreference"
            android:title="titlePreference"
            android:summary="summaryPreference"
            android:defaultValue="false"/>
    </PreferenceCategory>
</PreferenceScreen>