标签: android-preferences

如何在"首选项"摘要中显示Android首选项的当前值?

这必须经常出现.

当用户在Android应用中编辑首选项时,我希望他们能够在Preference摘要中查看首选项的当前设置值.

示例:如果我有"丢弃旧邮件"的"首选项"设置,该设置指定需要清除邮件的天数.在PreferenceActivity我想让用户看到:

"丢弃旧邮件" < - 标题

" x天后清理消息" < - summary其中x是当前的Preference值

额外的功劳:使这个可重用,所以我可以轻松地将它应用到我的所有首选项,无论其类型如何(这样它可以使用EditTextPreference,ListPreference等,只需最少的编码).

user-interface android android-preferences

450
推荐指数
17
解决办法
17万
查看次数

SharedPreferences.onSharedPreferenceChangeListener未被一致地调用

我正在注册这样的偏好更改监听器(在onCreate()我的主要活动中):

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

prefs.registerOnSharedPreferenceChangeListener(
   new SharedPreferences.OnSharedPreferenceChangeListener() {
       public void onSharedPreferenceChanged(
         SharedPreferences prefs, String key) {

         System.out.println(key);
       }
});
Run Code Online (Sandbox Code Playgroud)

麻烦的是,听众并不总是被召唤.它最初几次更改首选项,然后在卸载并重新安装应用程序之前不再调用它.没有重新启动应用程序似乎修复它.

我发现一个邮件列表线程报告了同样的问题,但没有人真正回答他.我究竟做错了什么?

android android-preferences

250
推荐指数
4
解决办法
8万
查看次数

getDefaultSharedPreferences和getSharedPreferences之间的区别

Android getDefaultSharedPreferencesgetSharedPreferencesAndroid有什么区别?有人可以解释一下吗?

android android-preferences sharedpreferences

217
推荐指数
2
解决办法
8万
查看次数

如何在PreferenceScreen中添加按钮?

我对Android开发很新,只是遇到了偏好.我找到了PreferenceScreens并希望用它创建一个登录功能.我唯一的问题是我不知道热,我可以在PreferenceScreen上添加一个"登录"按钮.以下是我的Preference View的样子:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
...
    <PreferenceScreen android:title="@string/login" android:key="Login">
        <EditTextPreference android:persistent="true" android:title="@string/username" android:key="Username"></EditTextPreference>
        <EditTextPreference android:title="@string/password" android:persistent="true" android:password="true" android:key="Password"></EditTextPreference>
    </PreferenceScreen>
...
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

Button应位于两个ExitTextPreferences下面.

这个问题有一个简单的解决方案吗?我找到的一个解决方案无法正常工作,因为我使用子偏好屏幕.

更新:

我发现我可以这样添加按钮:

<PreferenceScreen android:title="@string/login" android:key="Login">
        <EditTextPreference android:persistent="true" android:title="@string/username" android:key="Username"></EditTextPreference>
        <EditTextPreference android:title="@string/password" android:persistent="true" android:password="true" android:key="Password"></EditTextPreference>
        <Preference android:layout="@layout/loginButtons" android:key="loginButtons"></Preference>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

并且布局文件(loginButtons.xml)看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:weightSum="10" 
    android:baselineAligned="false" android:orientation="horizontal">
    <Button android:text="Login" android:layout_width="fill_parent"
        android:layout_weight="5" android:layout_height="wrap_content"
        android:id="@+id/loginButton" android:layout_gravity="left"></Button>
    <Button android:text="Password?" android:layout_width="fill_parent"
        android:layout_weight="5" android:layout_height="wrap_content"
        android:id="@+id/forgottenPasswordButton"></Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

所以现在按钮出现但我无法在代码中访问它们.我尝试使用findViewById(),但这返回null.我有什么想法可以访问这些按钮?

android android-preferences android-button

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

如何向PreferenceScreen添加按钮

有没有办法在首选项屏幕的底部添加一个按钮,并在滚动时使它们正常工作?

android android-preferences

106
推荐指数
4
解决办法
9万
查看次数

Android首选项onclick事件

在我的preferences.xml中,我有一个像这样的首选元素:

<Preference android:title="About" />
Run Code Online (Sandbox Code Playgroud)

我想分配onClick事件,所以如果用户点击它,我就可以打开新的Intent或浏览器.我试着像按钮那样做,但这似乎不起作用.

java android android-preferences

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

如何在android中删除应用程序时删除共享首选项

我有一个Android应用程序来保存登录详细信息,如用户名和密码通过它SharedPreferences工作正常,但我需要删除SharedPreferences我的应用程序卸载时使用的所有.怎么做?

SavePreferences("one ", "");
SavePreferences("two", "");
LoadPreferences();

 private void SavePreferences(String key, String value){
    sharedPreferences = getSharedPreferences("TEST", MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.commit();
   }

 private void LoadPreferences(){
    sharedPreferences = getSharedPreferences("TEST", MODE_PRIVATE);
    String strSavedMem1 = sharedPreferences.getString("MEM1", "");
    String strSavedMem2 = sharedPreferences.getString("MEM2", "");   
   } 
Run Code Online (Sandbox Code Playgroud)

我想SharedPreferences在我的应用程序卸载时删除它.

android android-preferences

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

如何实现确认(是/否)DialogPreference?

如何实现显示简单是/否确认对话框的首选项?

有关示例,请参阅Browser->Setting->Clear Cache.

android confirmation android-preferences dialog-preference

97
推荐指数
2
解决办法
10万
查看次数

如何在PreferenceFragment中侦听首选项更改?

如上所述这里,我继承PreferenceFragment并显示它的活动中.该文档解释了如何在此处监听首选项更改,但前提是您将PreferenceActivity子类化.由于我不这样做,我如何监听偏好变化?

我已经尝试在我的PreferenceFragment中实现OnSharedPreferenceChangeListener但它似乎不起作用(onSharedPreferenceChanged似乎永远不会被调用).

到目前为止这是我的代码:

SettingsActivity.java

public class SettingsActivity extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        // Display the fragment as the main content.
        getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

SettingsFragment.java

public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener
{
    public static final String KEY_PREF_EXERCISES = "pref_number_of_exercises";

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.preferences);
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
    {
        //IT NEVER GETS …
Run Code Online (Sandbox Code Playgroud)

android android-preferences sharedpreferences android-fragments android-activity

88
推荐指数
3
解决办法
6万
查看次数

是否可以在Android上向SharedPreferences添加数组或对象

我有一个ArrayList具有名称和图标指针的对象,我想将其保存SharedPreferences.我能怎么做?

注意:我不想使用数据库

android android-preferences sharedpreferences

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