- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ListPreference,我在单击列表以显示它时动态填充它。填充工作正常,但直到我下次单击打开列表时才会显示我填充的值,而是第一次显示 xml 文件中的值。感觉就像在调用 onPreferenceClick 之前已经填充了列表。我怎样才能刷新列表?我想在每次点击列表之前填充列表。
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
// Get preferences.
prefs = PreferenceManager.getDefaultSharedPreferences(this);
screen = getPreferenceScreen();
// Install on-click listener for calendars.
screen.findPreference("googleCalendars").setOnPreferenceClickListener(onSelectCalendarsClick);
}
/**
* We had a click on select calendars.
*/
public OnPreferenceClickListener onSelectCalendarsClick = new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference pref) {
final String username;
final String password;
final String list;
if (pref == findPreference("googleCalendars")) {
username = prefs.getString("googleUsername", "");
password = prefs.getString("googlePassword", "");
list = "googleCalendars";
}
else {
Log.d(TAG, "onSelectCalendarsClick.run(),unknown list clicked: " + pref.getTitle());
return false;
}
// Show process dialog while updating.
final ProgressDialog dialog = ProgressDialog.show(Preferences.this, "", "Fetching calendars, please wait...", true);
// Show dialog, non cancelable.
dialog.setCancelable(false);
dialog.show();
// Create new updater thread.
new Thread(){
public void run() {
Log.d(TAG, "onSelectCalendarsClick.run(), new thread. Fetching calendars...");
// Get calendars
// Create API.
CalendarApi calendarApi = new CalendarApi(prefs.getBoolean("debugFakeCalendar", false));
GetCalendarsResponse response = calendarApi.GetCalendars(username, password);
Log.d(TAG, "onSelectCalendarsClick.run(), new thread. Done!");
// Create new message and send it.
Message msg = new Message();
Bundle bundle = new Bundle();
bundle.putString("list", list);
msg.setData(bundle);
msg.obj = response;
getCalendarsHandler.sendMessage(msg);
// cancel dialog.
dialog.cancel();
}
}.start();
return false;
}
};
/**
* Handler for processing response from getCalendars.
*/
Handler getCalendarsHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// We have a new message.
GetCalendarsResponse response = (GetCalendarsResponse)msg.obj;
Bundle bundle = msg.getData();
// Null?
if (response == null || response.calendars == null) {
Log.d(TAG, "getCalendarsHandler.handleMessage(): response is null.");
return;
}
// Fetch.
ListPreferenceMultiSelect list = (ListPreferenceMultiSelect)screen.findPreference(bundle.getString("list"));
if (list != null) {
// Ok response.
list.setEntries(response.getEntries());
list.setEntryValues(response.getEntryValues());
}
// Display list preference.
list.getDialog().show();
}
};
}
最佳答案
setEntries 的文档指出设置将显示在后续对话框中。
一旦 OnClickPreference 被触发,Android 就会填充 ListPreference,您之后所做的任何操作都将显示在后续对话框中。
您可能希望预先填充它,而不是在显示后刷新它。预先填充它的最佳方法是在 onCreate 中填充 ListPreference,并让它在那里显示。
希望对你有帮助
关于android - 刷新 ListPreference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3839114/
我有一个具有以下首选项 xml 资源的 PreferenceFragment: 我想做的是:当我启用 pref_bt_enabled 时,我会打开蓝牙,查找配对设备并发现其他设备并将
我很难尝试设置 ListPreference 的样式。 我应用了一个主主题,它声明了一个 preferenceTheme,并且它们都链接到一个 dialogTheme(分别链接到 alertDialo
我有一个 ListPreference,我在单击列表以显示它时动态填充它。填充工作正常,但直到我下次单击打开列表时才会显示我填充的值,而是第一次显示 xml 文件中的值。感觉就像在调用 onPrefe
当我尝试在 SharedPreferences 中读取“sync_frequency”的默认值时,它返回 30,但应该是 300000。 我的资源: Intervall 5 m
我 extends PreferenceFragment 并将这样的代码添加到 onCreate 方法: final ListPreference pref = (ListPreference) f
编辑:实际上只有我的 ListPreference 默认值没有设置。 当我的应用程序启动时,尽管我调用了 setDefaultValues,但没有设置 ListPreference 默认值。是因为我在
我在 PreferenceActivity 中创建了一个 ListPreference,它运行良好: 用户点击首选项 打开一个列表对话框(从 array.xml 中检索列表项及其值) 如果用户选择列表
我正在使用 ListPreference 让用户从列表中选择一个位置。 一些条目被截断了太长字符串的 bcs。 我正在寻找最简单的方法来解决这个问题。一种变体是只使用较小的字体大小。 如果开销不是太大
我想在我的 PreferenceActivity 中创建一个 ListPreference。 单击 ListPreference 时,我会看到一个带有 ListView 的对话框。 ListView
这是我的代码 Mean sidereal solar year(365.256363004) Mean tropical solar year(36
我得到了这个 ListPreference,但它有一个我并不真正想要的取消按钮,而且它占用了太多空间。我当然可以将它设置为白色,但我宁愿让它消失。 最佳答案 自己找到答案: 这实际上让整个盒子变小
在我的设置 Activity 中,在选择 ListPreference 以升序或降序排列结果列表后,所选的值不会出现在 ListPreference 中。这是我用于此列表首选项的代码。我还附上了这个问
我有一些列表首选项,但我不知道如何保存列表中的各个值。我该怎么做?这是我的东西 http://i41.tinypic.com/dh4gvo.png Preference customPref
我们如何根据 ListPreference 中的数组选择禁用 CheckBox 首选项? 我所拥有的是,如果选择了自动模式或手动模式,我不想启用控制加速度计轴反转的复选框。我怎样才能实时做到这一点?感
是否有一个示例或可能已经为 Android 实现的 ListPreference,它有一个 TextView 和一个按钮来向列表添加新值? 像这样: |------------------------
我无法理解如何将 ListPreference 的条目值保存为整数。截至目前,我已将 ListPreference 定义如下: ...其中 entries 和 entryValues 属性在
当从我的首选项中的 ListPreferences 中进行选择时,如何更改 Fragment 中微调器数组的内容? 在我的应用程序中,我尝试添加包含 ListPreferences 的首选项。我编写了
为什么它在代码中不起作用?在 XML 中没问题,但在代码中不行。 String [] testValues = {"a" , "b", "c"}; ListPreference test = (Lis
我有一个 ListPreference,但是当我点击一个项目时,该值没有更新。getValue() 总是返回同样的东西。 当我重新点击 ListPreference 时,不幸的是该值没有改变。 我的代
我正在尝试为我正在开发的 Android 项目创建首选项屏幕。 我已经创建了一个 XML 配置文件,我一直将其用于调试,但现在我想创建一种更加用户友好的方式来设置应用程序的首选项,并决定使用首选项屏幕
我是一名优秀的程序员,十分优秀!