Android-在首选项页面中放置ListView

Android-在首选项页面中放置ListView,android,listview,preferences,Android,Listview,Preferences,我的应用程序中有一个首选项页面。由于并没有多选ListPreference(API级别11之后有一个),所以我想在preferences页面上放置一个ListView。但是preferences.xml不允许我插入线性布局 这是我的首选项。xml: <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"&

我的应用程序中有一个首选项页面。由于并没有多选ListPreference(API级别11之后有一个),所以我想在preferences页面上放置一个ListView。但是preferences.xml不允许我插入线性布局

这是我的首选项。xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
        <PreferenceCategory
                android:title="Auto Refresh Settings">
                <CheckBoxPreference
                        android:title="Auto Refresh"
                        android:defaultValue="false"
                        android:summary="Enable / Disable Auto Refresh"
                        android:key="checkboxPref" />
                <ListPreference
                        android:title="Auto Refresh Frequency"
                        android:summary="Select the frequency of Auto Refresh"
                        android:key="listPref"
                        android:defaultValue="20"
                        android:entries="@array/listArray"
                        android:entryValues="@array/listValues" />
        </PreferenceCategory>

        </PreferenceScreen>
package com.sarkolata.coding;


import android.content.Context;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceManager;
import android.widget.Toast;
public class Settings extends PreferenceActivity
{


     @Override
     protected void onCreate(Bundle savedInstanceState)
     {
          super.onCreate(savedInstanceState);
          addPreferencesFromResource(R.xml.preferences);


          final Preference ListPref = (Preference) findPreference("listPref");
          final Preference CheckPref = (Preference) findPreference("checkboxPref");


          if(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getBoolean("checkboxPref", false)) {
              ListPref.setEnabled(false);
          }

          ListPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

            public boolean onPreferenceChange(Preference preference, Object newValue) {

                Main.update_tick = Integer.parseInt(newValue.toString()) * 1000;

                return true;
            }
        });



          CheckPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

            public boolean onPreferenceChange(Preference preference, Object newValue) {

                if(newValue.toString() == "true")
                {
                    ListPref.setEnabled(false);
                } else {
                    ListPref.setEnabled(true);
                }

                if(newValue.toString() == "true") {

                Main.refreshAllServers(Main.context, Main.bcontext,"start");

                } else {

                    Main.refreshAllServers(Main.context, Main.bcontext,"stop");

                }

                return true;
            }
        });

     }



}

我不知道在首选项窗格中添加ListView是否明智,因为PreferenceActivity已经使用ListView来显示许多首选项。也许您想使用一个允许您进行多项选择的首选项。您可以在

中看到一个示例。我不知道在首选项窗格中添加ListView是否明智,因为PreferenceActivity已经使用ListView来显示许多首选项。也许您想使用一个允许您进行多项选择的首选项。您可以在

MultiSelectListPreference中看到一个示例,它是从API级别11开始的。我认为在中指定的方法不在首选项页面中。我需要它在首选项页面中,因为有两个首选项页面并不好。MultiSelectListPreference是从API级别11开始的。我认为在中指定的方法不在首选项页面中。我需要它在首选项页面中,因为有两个首选项页面并不好。