在本文中,我们将为您详细介绍dockerimageisreferencedinmultiplerepositories的相关知识,此外,我们还会提供一些关于AndroidMultiSelectList
在本文中,我们将为您详细介绍docker image is referenced in multiple repositories的相关知识,此外,我们还会提供一些关于Android MultiSelectListPreference取消选中不会触发SharedPreferenceChanged、Android Q 中不推荐使用 PreferenceManager getDefaultSharedPreferences、android – MultiSelectListPreference onPreferenceChange()方法得到错误的参数、android – PreferenceManager.getDefaultSharedPreferences()vs getPreferences()的有用信息。
本文目录一览:- docker image is referenced in multiple repositories
- Android MultiSelectListPreference取消选中不会触发SharedPreferenceChanged
- Android Q 中不推荐使用 PreferenceManager getDefaultSharedPreferences
- android – MultiSelectListPreference onPreferenceChange()方法得到错误的参数
- android – PreferenceManager.getDefaultSharedPreferences()vs getPreferences()
docker image is referenced in multiple repositories
docker rmi dfc6db8fc339 时报
Error response from daemon: conflict: unable to delete dfc6db8fc339 (must be forced) - image is referenced in multiple repositories
执行 docker rmi iminnerapi:teset02
Android MultiSelectListPreference取消选中不会触发SharedPreferenceChanged
<MultiSelectListPreference android:key="shop_list" android:entries="@array/shop_titles" android:entryValues="@array/shop_values" android:title="@string/pref_title_shops" android:dialogTitle="@string/pref_title_shops" android:defaultValue="@array/shop_values" android:summary="Choose where you hunt" />
首选项位于公共活动内部的静态PreferenceFragment内.我在PreferenceFragment的onPause和onResume上注册和取消注册SharedPreferenceChanged事件的监听器.
代码摘录:
public class AgentSettingsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getFragmentManager().beginTransaction().replace(android.R.id.content,new SettingsFragment()).commit(); } public static class SettingsFragment extends PreferenceFragment implements OnSharedPreferencechangelistener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Utils.Log("onCreate"); // Load the preferences from an XML resource addPreferencesFromresource(R.xml.pref_general); } @Override public void onResume() { Utils.Log("onResume"); super.onResume(); try { Utils.Log("Add pref listeners and try set summary"); getPreferenceScreen().getSharedPreferences().registerOnSharedPreferencechangelistener(this); } catch (Exception e) { Utils.Log("Pref not found"); } } @Override public void onPause() { super.onPause(); Utils.Log("onPause"); // Unregister the listener whenever a key changes getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferencechangelistener(this); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) { Utils.Log("onPreferenceChange,key : " + key); } } }
当我检查一个选项时,事件每次都会触发,直到我开始取消选中它们.然后,监听器停止被调用.我在这里缺少什么想法?这与我使用片段/活动的方式有关吗?
注意:我还应该补充说,我有一个ListPreference,即使在MultiSelectListPref正确停止响应之后仍然可以继续工作.
解决方法
从SDK 18开始,所有事情似乎都很好但在休息时,我和你一样有同样的问题.
我找到了一个似乎对我有用的解决方案:
MultiSelectListPreference multiSelectListPref = (MultiSelectListPreference) findPreference("pref_name"); if (multiSelectListPref != null) { multiSelectListPref.setonPreferencechangelistener(new Preference.OnPreferencechangelistener() { @Override public boolean onPreferenceChange(Preference preference,Object newValue) { MultiSelectListPreference mpreference = (MultiSelectListPreference) preference; mpreference.setSummary(newValue.toString()); mpreference.setValues((Set<String>) newValue); return true; } }); }
也许它对你的情况也很有用
Android Q 中不推荐使用 PreferenceManager getDefaultSharedPreferences
PreferenceManager getDefaultSharedPreferences
在Android
10中已弃用。我该如何更换它?
android – MultiSelectListPreference onPreferenceChange()方法得到错误的参数
我有一个带有MultiSelectListPreference的Android应用程序,我正在使用onPreferenceChange()方法来更新Preference的摘要.我已经设法编写了基于newValues参数更新摘要的代码,但是Object的内容与用户选择的实际选项不匹配.
这是我的代码:
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference instanceof MultiSelectListPreference) {
List<String> newValues = new ArrayList<>((HashSet<String>) newValue);
MultiSelectListPreference pref = (MultiSelectListPreference) preference;
ArrayList<String> newSummary = new ArrayList<>();
ArrayList<CharSequence> values = new ArrayList<>(Arrays.asList(pref.getEntryValues()));
for (int i = 0; i < newValues.size(); i++) {
int currentIndex = findindexOfString(values, newValues.get(i).replaceAll(" ", ""));
String title = (currentIndex >= 0) ? pref.getEntries()[currentIndex].toString().replaceAll(" ", "") : "";
newSummary.add(title);
}
pref.setSummary(TextUtils.join(", ", newSummary));
}
return true;
}
private static int findindexOfString(List<CharSequence> list, String s) {
for (int i = 0; i < list.size(); i++) {
if (s.equals(list.get(i).toString().replaceAll(" ", ""))) {
return i;
}
}
return -1;
}
解决方法:
这是我用于根据从onPreferenceChange()接收的newValue对象设置摘要的代码,其中包含存储为首选项的值. (对摘要不好)
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference instanceof MultiSelectListPreference) {
List<String> newValues = new ArrayList<>((HashSet<String>) newValue);
pref.setSummary(TextUtils.join(", ", getSummaryListFromValueList(newValues)));
}
return true;
}
private List<String> getSummaryListFromValueList(List<String> valueList) {
String[] allSummaries = getResources().getStringArray(R.array.pref_notif);
String[] allValues = getResources().getStringArray(R.array.pref_notif_values);
List<String> summaryList = new ArrayList<>();
for (int i = 0; i < allValues.length; i++) {
for (String value : valueList) {
if (allValues[i].equals(value)) {
summaryList.add(allSummaries[i]);
}
}
}
return summaryList;
}
android – PreferenceManager.getDefaultSharedPreferences()vs getPreferences()
PreferenceManager.getDefaultSharedPreferences(context)
和
getPreferences()
似乎检索不同的首选项.
PreferenceManager.getDefaultSharedPreferences(context).getBoolean(
"userWasAskedToEnableGps", false);
对我来说,返回false,
getPreferences(MODE_PRIVATE).getBoolean("userWasAskedToEnableGps", false);
返回true.
Preference是用编辑器编写的
Editor e = getPreferences(MODE_PRIVATE).edit();
e.putBoolean (...);
e.commit();
如何在Context中的Activity之外获得相同的Preferences?
解决方法:
从android github repo(1),我们可以看到getPreferences除了使用当前类名调用getSharedPreferences方法之外什么都不做.
public SharedPreferences getPreferences( int mode ) {
return getSharedPreferences( getLocalClassName(), mode );
}
没有什么限制其他活动/代码使用适当的类名访问共享首选项.更重要的是,我不想使用getPreferences,因为这意味着=>永远不会更改活动名称.如果更改,则使用明确提及的早期类名称(升级前)来处理访问共享首选项.
关于docker image is referenced in multiple repositories的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Android MultiSelectListPreference取消选中不会触发SharedPreferenceChanged、Android Q 中不推荐使用 PreferenceManager getDefaultSharedPreferences、android – MultiSelectListPreference onPreferenceChange()方法得到错误的参数、android – PreferenceManager.getDefaultSharedPreferences()vs getPreferences()等相关知识的信息别忘了在本站进行查找喔。
本文标签: