Android 横向模式下10英寸设备上的首选项活动

Android 横向模式下10英寸设备上的首选项活动,android,landscape,android-preferences,Android,Landscape,Android Preferences,我无法在lanscape方向的10英寸设备上正确显示首选项。 它显示的类别标题和复选框非常奇怪。请参阅所附图片以了解想法。 Prefs XML(仅类别、原因字段在后面的代码中添加): 我的PreferenceFragment如下所示(我必须为登录到应用程序的不同用户使用不同的设置\u键): 如果不使用特定于应用程序的主题,也会发生这种情况。我使用的主题是使用Android Asset Studio网站上列出的ThemeGenerator生成的: 如果您的应用程序适用于高于11的API,请执行以

我无法在lanscape方向的10英寸设备上正确显示首选项。 它显示的类别标题和复选框非常奇怪。请参阅所附图片以了解想法。

Prefs XML(仅类别、原因字段在后面的代码中添加):

我的PreferenceFragment如下所示(我必须为登录到应用程序的不同用户使用不同的设置\u键):

如果不使用特定于应用程序的主题,也会发生这种情况。我使用的主题是使用Android Asset Studio网站上列出的ThemeGenerator生成的:

如果您的应用程序适用于高于11的API,请执行以下操作:

public class FragmentPreferences extends Activity{
/*..*/
}
与此相反:

public class FragmentPreferences extends PreferenceActivity{
    /*..*/
}

你能发布你的xml吗?同意。如果没有任何代码之类的东西,就不可能帮助你。嗯,你做错了:)如果你使用eclipse,去“文件>新建>其他>Android对象>设置活动”,你会得到一个很好的例子。可能是在一个新项目中,因为它放了很多文件。
protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.Theme_Tp_actionbar_style);
    super.onCreate(savedInstanceState);
    getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}
public static class MyPreferenceFragment extends PreferenceFragment
{
    @Override
    public void onCreate(final Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);

        TPSettingsActivity act = (TPSettingsActivity)getActivity();
        String userName = "xxx";

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());

        PreferenceCategory targetCategory = (PreferenceCategory)findPreference("settingsCategory");

        CheckBoxPreference checkBoxPreference = new CheckBoxPreference(getActivity());
        checkBoxPreference.setKey(userName + "_autoclear");
        checkBoxPreference.setChecked(true);
        checkBoxPreference.setSummary(R.string.mobile_settings_onoff);
        checkBoxPreference.setTitle(R.string.mobile_settings_autoclean);
        checkBoxPreference.setChecked(prefs.getBoolean(userName + "_autoclear", false));
        targetCategory.addPreference(checkBoxPreference);

        TPListPreference listPref = new TPListPreference(getActivity());
        listPref.setKey(userName + "_autoclearperiod");
        listPref.setEntries(R.array.autoclearOptions);
        listPref.setEntryValues(R.array.autoclearValues);
        listPref.setSummary(R.string.mobile_settings_currentinterval);
        listPref.setTitle(R.string.mobile_settings_interval);
        listPref.setValue(prefs.getString(userName + "_autoclearperiod", "7"));
        targetCategory.addPreference(listPref);
    }
}
public class FragmentPreferences extends Activity{
/*..*/
}
public class FragmentPreferences extends PreferenceActivity{
    /*..*/
}