当我正在关注一个老的教程( Créezdes应用程序灌输Android – > openclassroom )时,我被卡在PreferenceActivity类的这个弃用的方法addPreferencesFromResource(int id) 。 所以我的问题是: 在Android中创build首选项的新方法是什么?
如何获得SharedPreferences所有密钥,而不是仅偏好密钥的值? prefA = getSharedPreferences("MyAttack", MODE_PRIVATE); prefB= getSharedPreferences("MySkill", MODE_PRIVATE);
问题 将设备从单窗格纵向PreferenceScreen旋转到双窗格横向PreferenceScreen ,导致横向仅显示为单窗格。 查看标题屏幕时不会发生。 build立 这仅适用于ICS。 我有一个PreferenceActivity加载preference-headers 。 每个标题链接一个Fragment ,然后加载一个PreferenceScreen 。 密尔的奔跑。 细节 一切运作良好,直到我注意到Android将只能自动切换到某个屏幕的双窗格外观。 经过一番研究,我从Commonsware的post中了解到,Android只会为sw720dp做这个工作。 如果你问我这个问题,那么很多设备都没有足够的空间来放置两个窗格。 所以我重写了onIsMultiPane()方法返回true和w600dp。 工作就像一个魅力….还挺。 给定一个设备,它将在纵向上显示单个窗格,在横向上显示双个窗格。 在纵向查看标题和旋转到横向,工作正常。 但是,如果select标题并在纵向模式下加载后续屏幕,则旋转横向设备将保持单窗格,而不是切换回双窗格。 如果您然后返回到标题屏幕,它将返回到双窗格外观,除了它不会预先select标题。 结果是详细的窗格保持空白。 这是预期的行为? 无论如何解决它? 我试着重写onIsHidingHeaders() ,但是这只是导致一切显示一个空白的屏幕。 码 偏好活动: public class SettingsActivity extends PreferenceActivity { @Override public void onBuildHeaders(List<Header> target) { super.onBuildHeaders(target); loadHeadersFromResource(R.xml.preference, target); } @Override public boolean onIsMultiPane() { return getResources().getBoolean(R.bool.pref_prefer_dual_pane); } } 偏好标题片段: […]
当Activity开始时,我需要为ListPreference设置defult值。 我已经尝试了ListPreference.setDefaultvalue("value"); 但是它将默认列表的入口作为默认值。 我需要它,因为我必须检查一个条件,并设置为默认值满足该条件,所以我认为它不能从XML文件(与android:defaultValue ) 例如,假设我在arrays.xml中有这个值的数组: <string-array name="opts"> <item>red</item> <item>green</item> <item>blue</item> </string-array> <string-array name="opts_values"> <item>1</item> <item>2</item> <item>3</item> </string-array> 在PreferenceScreen xml中: <ListPreference android:title="Colour select" android:summary="Select your favourite" android:key="colour" android:entries="@array/opts" android:entryValues="@array/opts_values" /> 在活动中,我想要做这样的事情: String mycolour; if (something) { mycolour="1"; } else { mycolour="2"; } ListPreference colour = (ListPreference) findPreference ("colour"); colour.setDefaultValue(mycolour); 但它不起作用,因为它作为默认的首选。 你能解释一下如何使另一个默认? 谢谢。
我已经实现了我自己的PreferenceFragment子类(详细在这里 ),并希望听取其中的偏好更改。 PreferenceFragment为您提供了两种执行此操作的方法: getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 和 getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 哪一个应该使用? 有什么不同? 我真的不明白在Android文档中所做的区别 。
我想要做的是我正在制作一个人生游戏计划。 我想把时间拖延,并把它作为一个偏好,但我想让人们可以在特定的时间input。 该数字可以是毫秒或秒。 然而,我有点卡住如何继续,我一直没有find一个简单的首选项,已经处理这个,但可能有一个。 有一个简单的方法来使这个偏好,并确认input的数据是一个整数或漂浮?
任何人都可以告诉我何时使用Checkbox和Switch ? 我的意思是,在PreferenceActivity的背景下,两者之间真正的login差异是什么? 例如,你会改变下一节Checkboxes ? 它是一个集合的一部分,但在这里使用Switch看起来更好。
我有一个android应用程序的首选项在XML中声明,使用addPreferencesFromResource加载。 用户可以打开首选项,点击每个项目并编辑它们,所有的作品。 我喜欢的一个偏好是: <ListPreference android:key="abc" android:title="@string/abc" android:summary="@string/cde" android:persistent="true"/> 如何自动向用户显示首选项对话框(不需要用户转到首选项屏幕并单击它?)。 我试过( (android.preference.DialogPreference) prefMgr.findPreference( "abc" )).showDialog(null) ,但是说它是一个受保护的方法…? 从我的主要活动(这是一个PreferenceActivity )调用它,这就是为什么它显然不能工作。 但是如何呢? 编辑 我只是发现两个线程( 1和2 )的想法使用findViewById访问首选项,但没有成功。 它总是返回null (也适用于我)。 它看起来真的没有可能从代码做到这一点。
我想检测一个ListView包含的Preference何时被点击,以便我可以启动一个意图来pipe理这个select。 我会在我的布局XML文件中这样做: <Preference android:title="About" android:key="myKey"></Preference> 并在我的java代码如下: Preference myPref = (Preference) findPreference("myKey"); myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { //open browser or intent here } }); 但是,不推荐使用public Preference findPreference (CharSequence key) 。 是否有一个不赞成的等价物? 如果不是的话,如果我用它呢? Fragments如何帮助我以更好的方式完成我的任务?Chek here: 没有弃用方法的首选项 。 在这里,您可以检查我的活动所具有的XML布局结构以及应用程序的快照: XML: <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <Preference android:key="about" android:title="@string/titleAbout" android:summary="@string/summaryAbout" /> <Preference android:key="labelTaxonomy" android:title="@string/titleLabelTaxonomy" android:summary="@string/summaryLabelTaxonomy" […]
我有一个非常简单的问题: 我有一个EditTextPreference对话框,我想用来获取用户的密码,我希望它被掩盖。 我怎样才能做到这一点?