GVKun编程网logo

docker image is referenced in multiple repositories

34

在本文中,我们将为您详细介绍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

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

Android MultiSelectListPreference取消选中不会触发SharedPreferenceChanged

我正在使用具有以下属性的 MultiSelectListPreference ..

<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

Android Q 中不推荐使用 PreferenceManager getDefaultSharedPreferences

PreferenceManager getDefaultSharedPreferences在Android
10
中已弃用。我该如何更换它?

android – MultiSelectListPreference onPreferenceChange()方法得到错误的参数

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()

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()等相关知识的信息别忘了在本站进行查找喔。

本文标签: