设置上的多行标签

Multine line label on settings

我想创建一个设置Activity,其中包含带有标题和副标题的项目。

我已经检查了很多文档甚至这里的其他帖子,人们说这是不可能的...android 默认设置页面有很多:

对不起,葡萄牙语的图片,但上面写的并不重要,关键是建立在 android 上的设置页面有很多 titile/subtitle 项目(它发生在很多地方其他屏幕)

我想使用 android 默认 Preference api 来实现它。这可能吗?

是的,这是可能的。一种快速解决方案如下(可以根据您的需要即兴创作和调整):

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>