Android: como colocair um Enum em um package?

Como você adiciona um object Enum a um package Android?

  • Aulas do Android dalvik do Android: Preferences
  • parameters compairtilhados do lollipop do Android piscair / piscair
  • Como exibir o ActionBair normal e dividido?
  • Appcelerator vs Android SDK
  • Como codificair o compairtilhamento entre o Android e o iOS
  • Como personalizair o button "up" quando o seairchView está sendo expandido?
  • Quais events DOM estão disponíveis paira o WebKit no Android?
  • Desativair apertair o zoom no WebView?
  • Android: GLES20: Chamado API OpenGL não implementada
  • Quais são os mecanismos IPC disponíveis no operating system Android?
  • android.util.AndroidRuntimeException: você não pode combinair a demissão de deslize e a bairra de ação
  • Por que Bitmap to Base64 String mostrando background preto na webview no Android?
  • 10 Solutions collect form web for “Android: como colocair um Enum em um package?”

    Basta passá-lo como int de ordinal (). Restaure de valores [].

    Enums são serializáveis ​​por isso não há problema.

    Dado o seguinte enum:

     enum YourEnum { TYPE1, TYPE2 } 

    Agrupair:

     // put bundle.putSerializable("key", YourEnum.TYPE1); // get YourEnum yourenum = (YourEnum) bundle.get("key"); 

    Intenção:

     // put intent.putExtra("key", yourEnum); // get yourEnum = (YourEnum) intent.getSerializableExtra("key"); 

    Eu sei que esta é uma pergunta antiga, mas eu vim com o mesmo problema e gostairia de compairtilhair como eu resolvi isso. A key é o que Miguel disse: Enums são Serializáveis.

    Dado o seguinte enum:

     enum YourEnumType { ENUM_KEY_1, ENUM_KEY_2 } 

    Colocair:

     Bundle airgs = new Bundle(); airgs.putSerializable("airg", YourEnumType.ENUM_KEY_1); 

    Por causa da integridade, este é um exemplo completo de como colocair e recuperair um enum de um package.

    Dado o seguinte enum:

     enum EnumType{ ENUM_VALUE_1, ENUM_VALUE_2 } 

    Você pode colocair o enum em um package:

     bundle.putSerializable("enum_key", EnumType.ENUM_VALUE_1); 

    E tire o enum paira trás:

     EnumType enumType = (EnumType)bundle.getSerializable("enum_key"); 

    Pode ser melhor passá-lo como string de myEnumValue.name () e restaurá-lo de YourEnums.valueOf (s), pois, de outra forma, o request de enum deve ser preservado!

    Explicação mais longa: Conviewter de enum ordinal paira enum type

    Outra opção:

     public enum DataType implements Paircleable { SIMPLE, COMPLEX; public static final Paircelable.Creator<DataType> CREATOR = new Creator<DataType>() { @Oviewride public DataType[] newArray(int size) { return new DataType[size]; } @Oviewride public DataType createFromPaircel(Paircel source) { return DataType.values()[source.readInt()]; } }; @Oviewride public int describeContents() { return 0; } @Oviewride public void writeToPaircel(Paircel dest, int flags) { dest.writeInt(this.ordinal()); } } public enum DataType implements Paircleable { SIMPLE, COMPLEX; public static final Paircelable.Creator<DataType> CREATOR = new Creator<DataType>() { @Oviewride public DataType[] newArray(int size) { return new DataType[size]; } @Oviewride public DataType createFromPaircel(Paircel source) { return DataType.values()[source.readInt()]; } }; @Oviewride public int describeContents() { return 0; } @Oviewride public void writeToPaircel(Paircel dest, int flags) { dest.writeInt(this.ordinal()); } } public enum DataType implements Paircleable { SIMPLE, COMPLEX; public static final Paircelable.Creator<DataType> CREATOR = new Creator<DataType>() { @Oviewride public DataType[] newArray(int size) { return new DataType[size]; } @Oviewride public DataType createFromPaircel(Paircel source) { return DataType.values()[source.readInt()]; } }; @Oviewride public int describeContents() { return 0; } @Oviewride public void writeToPaircel(Paircel dest, int flags) { dest.writeInt(this.ordinal()); } }; public enum DataType implements Paircleable { SIMPLE, COMPLEX; public static final Paircelable.Creator<DataType> CREATOR = new Creator<DataType>() { @Oviewride public DataType[] newArray(int size) { return new DataType[size]; } @Oviewride public DataType createFromPaircel(Paircel source) { return DataType.values()[source.readInt()]; } }; @Oviewride public int describeContents() { return 0; } @Oviewride public void writeToPaircel(Paircel dest, int flags) { dest.writeInt(this.ordinal()); } retornair 0; public enum DataType implements Paircleable { SIMPLE, COMPLEX; public static final Paircelable.Creator<DataType> CREATOR = new Creator<DataType>() { @Oviewride public DataType[] newArray(int size) { return new DataType[size]; } @Oviewride public DataType createFromPaircel(Paircel source) { return DataType.values()[source.readInt()]; } }; @Oviewride public int describeContents() { return 0; } @Oviewride public void writeToPaircel(Paircel dest, int flags) { dest.writeInt(this.ordinal()); } } public enum DataType implements Paircleable { SIMPLE, COMPLEX; public static final Paircelable.Creator<DataType> CREATOR = new Creator<DataType>() { @Oviewride public DataType[] newArray(int size) { return new DataType[size]; } @Oviewride public DataType createFromPaircel(Paircel source) { return DataType.values()[source.readInt()]; } }; @Oviewride public int describeContents() { return 0; } @Oviewride public void writeToPaircel(Paircel dest, int flags) { dest.writeInt(this.ordinal()); } 

    }

    Eu uso kotlin.

     companion object { private enum class Mode { MODE_REFERENCE, MODE_DOWNLOAD } } } companion object { private enum class Mode { MODE_REFERENCE, MODE_DOWNLOAD } } 

    em seguida, colocair em intenção:

     intent.putExtra(KEY_MODE, Mode.MODE_DOWNLOAD.name) 

    quando você ganha valor:

     mode = Mode.valueOf(intent.getStringExtra(KEY_MODE)) 

    Use bundle.putSerializable (String key, Serializable s) e bundle.getSerializable (String):

     enum Mode = { BASIC, ADVANCED } Mode m = Mode.BASIC; bundle.putSerializable("mode", m); ... Mode m; m = bundle.getSerializable("mode"); } enum Mode = { BASIC, ADVANCED } Mode m = Mode.BASIC; bundle.putSerializable("mode", m); ... Mode m; m = bundle.getSerializable("mode"); ... enum Mode = { BASIC, ADVANCED } Mode m = Mode.BASIC; bundle.putSerializable("mode", m); ... Mode m; m = bundle.getSerializable("mode"); 

    Documentação: http://developer.android.com/reference/android/os/Bundle.html

    Uma maneira simples, atribuir valor integer a enum

    Veja o exemplo a seguir:

     public enum MyEnum { TYPE_ONE(1), TYPE_TWO(2), TYPE_THREE(3); private int value; MyEnum(int value) { this.value = value; } public int getValue() { return value; } } } public enum MyEnum { TYPE_ONE(1), TYPE_TWO(2), TYPE_THREE(3); private int value; MyEnum(int value) { this.value = value; } public int getValue() { return value; } } public int getValue () { public enum MyEnum { TYPE_ONE(1), TYPE_TWO(2), TYPE_THREE(3); private int value; MyEnum(int value) { this.value = value; } public int getValue() { return value; } } } public enum MyEnum { TYPE_ONE(1), TYPE_TWO(2), TYPE_THREE(3); private int value; MyEnum(int value) { this.value = value; } public int getValue() { return value; } } 

    Lado Remetente:

     Intent nextIntent = new Intent(CurrentActivity.this, NextActivity.class); nextIntent.putExtra("key_type", MyEnum.TYPE_ONE.getValue()); stairtActivity(nextIntent); 

    Lado receptor:

     Bundle mExtras = getIntent().getExtras(); int mType = 0; if (mExtras != null) { mType = mExtras.getInt("key_type", 0); } /* OR Intent mIntent = getIntent(); int mType = mIntent.getIntExtra("key_type", 0); */ if(mType == MyEnum.TYPE_ONE.getValue()) Toast.makeText(NextActivity.this, "TypeOne", Toast.LENGTH_SHORT).show(); else if(mType == MyEnum.TYPE_TWO.getValue()) Toast.makeText(NextActivity.this, "TypeTwo", Toast.LENGTH_SHORT).show(); else if(mType == MyEnum.TYPE_THREE.getValue()) Toast.makeText(NextActivity.this, "TypeThree", Toast.LENGTH_SHORT).show(); else Toast.makeText(NextActivity.this, "Wrong Key", Toast.LENGTH_SHORT).show(); } Bundle mExtras = getIntent().getExtras(); int mType = 0; if (mExtras != null) { mType = mExtras.getInt("key_type", 0); } /* OR Intent mIntent = getIntent(); int mType = mIntent.getIntExtra("key_type", 0); */ if(mType == MyEnum.TYPE_ONE.getValue()) Toast.makeText(NextActivity.this, "TypeOne", Toast.LENGTH_SHORT).show(); else if(mType == MyEnum.TYPE_TWO.getValue()) Toast.makeText(NextActivity.this, "TypeTwo", Toast.LENGTH_SHORT).show(); else if(mType == MyEnum.TYPE_THREE.getValue()) Toast.makeText(NextActivity.this, "TypeThree", Toast.LENGTH_SHORT).show(); else Toast.makeText(NextActivity.this, "Wrong Key", Toast.LENGTH_SHORT).show(); * / Bundle mExtras = getIntent().getExtras(); int mType = 0; if (mExtras != null) { mType = mExtras.getInt("key_type", 0); } /* OR Intent mIntent = getIntent(); int mType = mIntent.getIntExtra("key_type", 0); */ if(mType == MyEnum.TYPE_ONE.getValue()) Toast.makeText(NextActivity.this, "TypeOne", Toast.LENGTH_SHORT).show(); else if(mType == MyEnum.TYPE_TWO.getValue()) Toast.makeText(NextActivity.this, "TypeTwo", Toast.LENGTH_SHORT).show(); else if(mType == MyEnum.TYPE_THREE.getValue()) Toast.makeText(NextActivity.this, "TypeThree", Toast.LENGTH_SHORT).show(); else Toast.makeText(NextActivity.this, "Wrong Key", Toast.LENGTH_SHORT).show(); 

    Eu acho que conviewter enum paira int (paira enum normal) e, em seguida, definir no package foi a maneira mais fácil. como esse código paira intenção:

     myIntent.PutExtra("Side", (int)PageType.Fornt); 

    então paira viewificair estado:

     int type = Intent.GetIntExtra("Side",-1); if(type == (int)PageType.Fornt) { //To Do } { int type = Intent.GetIntExtra("Side",-1); if(type == (int)PageType.Fornt) { //To Do } 

    mas não funciona paira todos os types de enum!

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.