相关疑难解决方法(0)

PreferenceFragmentCompat需要设置preferenceTheme

使用v7首选项支持库中的新PreferenceFragmentCompat:http://developer.android.com/tools/support-library/features.html#v7-preference,我收到此错误

E  java.lang.IllegalStateException: Must specify preferenceTheme in theme
E      at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:202)
Run Code Online (Sandbox Code Playgroud)

应该设置什么主题?

更新:我尝试过使用

<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>

正如@Bogato所建议的那样,它看起来并不正确,即使在Lollipop上也看起来非常Holo.

支持库:

在此输入图像描述

原生偏好:

在此输入图像描述

android android-fragments android-support-library preferencefragment preference-v7

114
推荐指数
5
解决办法
5万
查看次数

Android:有没有办法从代码中显示DialogPreference?

我想在第一个应用启动时打开一些首选项(通过扩展DialogPreference来创建).此外,这些偏好用作通常的偏好.

有没有办法实现这个?

编辑:

我有我的自定义偏好,如下所示:

public class CitySelectPreference extends DialogPreference  {
// Some code here
}
Run Code Online (Sandbox Code Playgroud)

并且作为解决方案,我希望它从代码中显示,而无需用户进入首选项屏幕.

android android-preferences dialog-preference

10
推荐指数
1
解决办法
1628
查看次数

如何在Android中打开嵌套的子PreferenceScreen

我有一个以XML格式定义的PreferenceScreen,它为我的应用程序提供所有首选项.此PreferenceScreen还有一个嵌套在其中的子PreferenceScreen.我的实现类叫做PreferencesActivity.我知道我可以通过startActivity打开主要的Preferences窗口(new Intent(this,PreferencesActivity.class)); 但是如何通过Intent打开子PreferenceScreen呢?

android android-preferences

5
推荐指数
1
解决办法
6113
查看次数

以编程方式启动 DialogPreference

我有一个这样定义的类

public class MyDialog extends DialogPreference {
Run Code Online (Sandbox Code Playgroud)

并在首选项.xml

<com.package.pak.MyDialog
    android:key="my_key" android:title="Title"
    android:dialogTitle="title"
    android:dialogIcon="@drawable/app_icon" android:negativeButtonText="@null"
    android:positiveButtonText="Ok" />
Run Code Online (Sandbox Code Playgroud)

我的问题是如何以编程方式启动 MyDialog ?有什么我可以称之为意图或的东西吗?

谢谢

android android-preferences

5
推荐指数
1
解决办法
1814
查看次数

如何打开或模拟点击Android ListPreference,这是偏好类别?

我试图以编程方式打开一个ListPreference,它存在于PreferenceCategory中.XML结构类似于:

<PreferenceScreen 
    android:key="pref_screen" >

    <PreferenceCategory 
        android:title="Category"
        andorid:key="pref_category">
        <ListPreference
            android:key="pref_list"
            android:title="List" />
    </PreferenceCategory>
</PreferenceScreen> 
Run Code Online (Sandbox Code Playgroud)

我的目标是以编程方式打开"pref_list",并将其显示给用户.我调查了这个主题,提供了这个解决方案:

// the preference screen your item is in must be known
PreferenceScreen screen = (PreferenceScreen) findPreference("pref_screen");

// the position of your item inside the preference screen above
int pos = findPreference("pref_list").getOrder();

// simulate a click / call it!!
screen.onItemClick( null, null, pos, 0 ); 
Run Code Online (Sandbox Code Playgroud)

这适用于没有PreferenceCategory的PreferenceScreen,但我不能让它适用于我的情况(当ListPreference位于PreferenceCategory中时).

如何根据我的情况修改此项?或者还有其他解决方案吗?

我在PreferenceCategory中找不到类似于PreferenceScreen的方法onItemClick().更改'pos'以获取getOrder()我的PreferenceCategory 的值也不起作用.

android android-preferences listpreference

5
推荐指数
1
解决办法
1404
查看次数