Konvertieren drawable-zu-string übergeben, um eine andere Aktivität
Ich bin derzeit versuchen, zu konvertieren, ein drawable auf eine Zeichenfolge und übergeben Sie es an einen anderen Aktivität, die über eine gemeinsame Einstellungen verwenden Sie diese Methode. loadIcon ist ein Drawable.
Aktivität 1
try {
ai = pm.getApplicationInfo(pInfo.packageName, PackageManager.GET_META_DATA);
}
catch (NameNotFoundException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
loadIcon = ai.loadIcon(pm);
Log.i("Icon drawable", loadIcon.toString());
SharedPreferences preferences = getSharedPreferences("ANALYZE_PREF", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("drawable", loadIcon.toString());
editor.commit();
Dies ist, was ich bekomme in der Logcat:
11-06 10:13:28.995: I/Drawable shared(16786): android.graphics.drawable.BitmapDrawable@417f2aa8
Abzurufen versucht es in der anderen Tätigkeit
Aktivität 2
SharedPreferences settings = getSharedPreferences("ANALYZE_PREF", MODE_PRIVATE);
String drawableString = settings.getString("drawable", "");
Log.i("Drawable shared", drawableString);
Drawable drawableImage = getDrawable(drawableString);
imageView.setBackgroundDrawable(drawableImage);
public Drawable getDrawable(String bitmapUrl) {
try {
URL url = new URL(bitmapUrl);
Drawable d =new BitmapDrawable(BitmapFactory.decodeStream(url.openConnection().getInputStream()));
Log.i("d value", "d value " + d);
return d;
}
catch(Exception ex) {
Log.i("Null", "Drawable returns null");
return null;
}
}
Bekomme ich eine null, wenn Sie versuchen, es zu konvertieren zurück zu einem drawable
Logcat:
11-06 10:13:28.995: I/Null(16786): Drawable returns null
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie vorbei sind
android.graphics.drawable.BitmapDrawable@417f2aa8
als der string, dann der Versuch, Sie alsURL
Objekt. Sie können nicht erstellen Sie eineURL
aus diesen Daten.Um ehrlich zu sein, ich bin mir nicht sicher, warum Sie versuchen, dies zu tun. Beide
Activity
Objekte werden aus dem gleichen Kontext und der gleichen Symbol. Warum versuchen, es zu speichern in den Einstellungen und laden Sie es sofort, wenn Sie können einfach Holen Sie sich das Symbol in der zweitenActivity
?Du gehst zu haben, um wechseln Ihre Umsetzung irgendwie;
Drawable
s nicht alle habenURL
s.Activity
.setImageDrawable
dauertDrawable
, warum würden Sie nicht in der Lage sein, um es zu setzen?