繁体   English   中英

如何将图标从 PackageName 保存到 String 格式的共享首选项 - AndroidX

[英]How to save Icon from PackageName to shared preference in String format - AndroidX

如何将图标从 PackageName 保存到字符串格式的共享首选项,然后我可以从首选项中恢复字符串并将其设置为我的图像

SharedPreferences.Editor editor = getActivity().getSharedPreferences("MyPrefGameAppProgram", MODE_PRIVATE).edit();
                editor.putString("GameProgram"+CounterGameProgram, p.applicationInfo.loadLabel(getActivity().getPackageManager()).toString()+ "%" +p.packageName+ "%" +p.versionName+ "%" +p.versionCode+ "%" + p.applicationInfo.loadIcon(getActivity().getPackageManager()););
                editor.apply();

重新设置

for(int i=1; i<=Integer.parseInt(TotalGameProgram); i++){
        String currentStringX = prefsx.getString("GameProgram"+i, "No Data");
        String[] separatedX = currentStringX.split("%");
        String appnameX = separatedX[0];
        String apppackagenameX = separatedX[1];
        String appversionnameX = separatedX[2];
        int appversioncodeX = Integer.parseInt(separatedX[3]);
        /*String appiconX = separatedX[4];*/


        /*modelMyAppsInstalledApps.add(new ModelMyAppsInstalledApps(appnameX, apppackagenameX, appversionnameX, appversioncodeX, appiconX));*/
    }

我很挣扎,因为我从该库中获得的图标格式是 Drawable,所以我无法将其保存为首选项,任何解决方案?

我很挣扎,因为我从该库中获得的图标格式是 Drawable,所以我无法将其保存为偏好

是的,而不是applicationInfo.loadIcon使用applicationInfo.icon它返回int drawable id 并优先保存此 id。

要从此 id 获取可绘制性,请使用PackageManager例如:

Resources res = getPackageManager.getResourcesForApplication(p.applicationInfo);
Drawable icon = res.getDrawable(<drawable_id>);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM