2012-11-14 32 views
9

olarak almak istiyorum ben bir Paket üzerinden başka konuya bu enum değeri üzerinden göndermek istediğiniz buBen bir Hediye bir enum değer paketi ve enum

enum Status {READY, DISCONNECTED, RECEIVING, ... more } 

gibi bu enum var.

diğer iplik, Demet gelen enum değer elde etmek istiyorum bu yapılabilir Nasıl

, akıllıca?

Bundle createBundle(Status status); 

ve

Status getStatus(Bundle b); 

sayesinde

+0

. Bir sınıf oluşturmak için bir kısayol yolu olarak bir enum düşünün. Hiçbir "örneği" yoktur ve bu yüzden onu paketlemek anlamsızdır. Türü birleştirip geçirebilirsiniz, ancak bu size hiçbir şey vermez. Belki bir enum değerini geçmek istiyor musunuz? Aslında, ne yapmaya çalışıyorsun? – Simon

+0

Ah ,. sadece başlık görüldü. bir enum değer değil, enum kendisi aktarmaya çalıştığınız o açık olmak için soruyu düzenlemek ve Todd'un cevabı kabul ediniz. Teşekkürler! arasında – Simon

+0

Olası kopyalar [Android: bir Hediye bir Enum koymak nasıl?] (http://stackoverflow.com/questions/3293020/android-how-to-put-an-enum-in-a-bundle) – blahdiblah

cevap

7

İyi soru! Enemleri doğrudan paketlemenin bir yolunun farkında değilim. o zaman bu açmak için

int intValue = myEnum.ordinal(); 

: Hep paketi için kullanabilir Enum seri hale getirilebilir yana

MyEnum enumValue = MyEnum.values()[intValue]; 
+0

Todd, benim için çalışacak teşekkürler – Ahmed

25

, sadece kullanarak demet halinde enum paketi olabilir:

public static String MY_ENUM = "MY_ENUM"; 
myBundle.putSerializable(MY_ENUM, enumValue); 

için kullanmak, almak: yapamazsın

MyEnum myEnum = (MyEnum) myBundle.getSerializable(MY_ENUM);