Articles of 首选项

Android偏好设置摘要默认颜色?

我已经在一个真实的手机中安装了我的应用程序,即使在模拟器中,首选项摘要的所有文本看起来都是相同的颜色,在真实手机中颜色是不同的(某种蓝色…但我猜这取决于手机的型号)。 如何将此颜色设置为我的自定义首选项组件? (我已经实现了自己的搜索栏,其摘要文本颜色与所有其他组件文本颜色不同…)。 谢谢!

如何从首选屏幕返回主要活动?

我有一个主要活动和一个preferenceActivity。 在我的第一个活动中,我调用menu并通过调用startActivityForResult继续使用preferenceActivity。 case R.id.settings: startActivityForResult(new Intent(this, SettingsActivity.class), LAUNCH_SETTINGS); return true; 然后我更改我的设置并希望返回主要活动,并查看应用了新设置的主要活动。 在onPause()方法中执行以下操作(因为我正确理解当按下后退按钮时会调用此方法,对吧?) @Override protected void onPause() { super.onPause(); setResult(RESULT_OK, new Intent(this, MainActivity.class)); finish(); } 关于主要活动 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == LAUNCH_SETTINGS) { if (resultCode == RESULT_OK) { new RefreshList().execute(ACTION_SELECT); Log.d(TAG, “On activity result”); } } } 但是我的acyncTask没有调用并且没有打印日志。 我怎么能正确地做到这一点? […]

checkboxpreference中的多重依赖关系android或listpreference的依赖关系

例如:我的首选项屏幕中有三个checkbox,每个checkbox有3个不同的listpreference(A,B,C)首选项listpreference(A,B,C) 。 我想让用户一次只选择一个checkbox。 我如何实现这一目标? 首选项屏幕中没有单选按钮 我不能使用Listpreference,如果我可以使用它 ListPreference android:key=”livewallpaper_testpattern” android:title=”@string/livewallpaper_settings_title” android:summary=”@string/livewallpaper_settings_summary” android:entries=”@array/livewallpaper_testpattern_names” android:entryValues=”@array/livewallpaper_testpattern_prefix” 这个Listprefrence的数组是“蓝色”,“红色”,“白色” 如果是蓝色ListPreference A取决于蓝色 如果它是红色ListPreference B取决于红色 如果是白色ListPreference C取决于白色 我怎样才能做到这一点? 我在谷歌搜索了3-4页,这里几乎所有关于这些,但我找不到任何答案。 最好的祝福, 提前致谢..

我可以通过XML为RingtonePreference插入android:defaultValue特征吗?

有没有办法通过XML在RingtonePreference中添加默认值? 例如,这是我的preference.xml的样子。 如果可能的话,我想将RingtonePreference设置为默认铃声,如下所示:

Android首选项活动IllegalArgumentException:此活动的无效片段

我的偏好活动有问题。 我创建了偏好屏幕和一个偏好活动。 在Android 4.2.2手机上,它运行正常。 但是在使用Android 5.0的Android Emulator上,它会因此错误而崩溃: IllegalArgumentException: Invalid fragment for this activity. 这是因为这段代码吗?: @Override protected boolean isValidFragment(String fragmentName) { return MyPreferenceFragment.class.getName().equals(fragmentName); } 第二个首选项片段是MyExportPreferenceFragment …如何将它们与一个活动一起使用? 谢谢你的帮助 //编辑:find一个解决方案,但也许它太hacky ^^ @Override protected boolean isValidFragment(String fragmentName) { if(MyPreferenceFragment.class.getName().equals(fragmentName)) { return MyPreferenceFragment.class.getName().equals(fragmentName); } else { return MyExportPreferenceFragment.class.getName().equals(fragmentName); } } 这个可以吗? 或者这样做是危险的吗?

创建自己的SwitchCompat首选项

由于appcompat v7缺少SwitchCompatPreference因此似乎有必要自己创建它。 怎么能实现这一目标? 我google了一下,find了DialogPreference的教程。 我尝试将它用于SwitchCompatPreference但在我的xml布局中,它总是说在偏好xml中不允许这个类。 我需要做什么?

在ICS首选项中转义% – 我是否真的必须编写特定于版本的字符串处理?

我有一个在ICS上崩溃的应用程序。 到目前为止工作得很好(虽然我不确定我是否真的有一个蜂窝平台可以测试,我们所有的测试手机都是姜饼或更低的,现在我有几个ICS手机可以玩)。 我的首选项页面中的以下代码(从onResume和OnPreferenceChangeListener调用)工作正常: protected void setBatteryAlarmSummary(String newValue){ Preference batteryAlarm = (Preference) findPreference( getString(R.string.battery_low_alarm) ); StringBuilder summary = new StringBuilder(); summary.append(getString(R.string.battery_alarm_summary_label)); summary.append(” “); summary.append(newValue); summary.append(“%”); batteryAlarm.setSummary(summary); } 这将pref摘要设置为“10%的低电量警报”。 现在,有了ICS,它崩溃了。 不是当它执行setSummary时,而不是当页面显示时,但是当你甚至稍微滚动首选项时,显然会触发渲染(这个项目大约是8个左右的项目,所以它在列表中“低于” )。 修复ICS很简单,只需转义百分号: summary.append(“%%”); 然而,姜饼上的代码显示“低电池警报10 %%” 我可以根据版本编写它来改变,但那只是愚蠢的。 他们是否真的打破了他们的偏好渲染的向后兼容性,或者这只是一个三星的东西(不幸的是,这是我现在唯一的ICS测试平台)?

当用户在字段中编辑值时,自定义DatePicker作为首选项不会保留值

我创建了一个DatePickerPreference,即我扩展了DialogPreference并在其中创建了一个DatePicker对象并使其工作得非常完美。 当您单击上下箭头并保存所选值时,它会更改值。 但是,如果您在字段内单击并在那里键入新值,则不会保存更新的值! 使用箭头时,始终调用onDateChanged()方法; 当用户进入该字段并对其进行编辑时,如果他选择另一个字段,它将只调用onDateChanged(在这种情况下,如果他编辑最后一个字段并且只是点击OK,则最后一次编辑将被忽略)。 我发现Eric Besette在他的TimePickerPreference上发布了类似的问题 这是我的代码: public class DatePickerPreference extends DialogPreference implements OnDateChangedListener, OnDateSetListener { @Override protected View onCreateDialogView() { DatePicker picker = new DatePicker(getContext()); mDate = getPersistedLong(System.currentTimeMillis()); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(mDate); int day = calendar.get(Calendar.DAY_OF_MONTH); int month = calendar.get(Calendar.MONTH); int year = calendar.get(Calendar.YEAR); picker.init(year, month, day, this); return picker; } public […]

如何在android studio中设置设置活动?

我已经按照android开发人员的指南“设置”进行了操作。 但是当我启动我的SettingsActivity时,我得到的只是白屏 。 我究竟做错了什么? 这是我的SettingActivity.java public class SettingsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getFragmentManager().beginTransaction() .replace(android.R.id.content, new SettingsFragment()) .commit(); } } 这是SettingFragment public class SettingsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } 这是首选项文件 这就是我切换到SettingsActivity的方式 Intent intent = new Intent(MainActivity.this, SettingsActivity.class); startActivity(intent); 白屏应该发生吗? 我期待一个带设置的默认屏幕

创建后更改android小部件设置首选项?

假设我的应用程序有一个小部件,我使用配置屏幕进行初始应用程序小部件设置并设置一些首选项。 我希望用户能够通过进入我的应用程序的设置屏幕并单击意图首选项来更改这些设置,以打开创建应用程序时用户所提供的相同选项。 我可以使用与配置活动相同的活动吗? 我必须以不同的方式处理它吗? 如何使用新设置更新现有小部件? 我怎样才能让它发挥作用?