public class Flag {
// final static int FLAG_A = 1 << 0;
// final static int FLAG_B = 1 << 1;
// final static int FLAG_C = 1 << 2;
// final static int FLAG_D = 1 << 3;
// final static int FLAG_E = 1 << 4;
// final static int FLAG_F = 1 << 5;
final static int FLAG_A = 0x01;
final static int FLAG_B = 0x02;
final static int FLAG_C = 0x04;
final static int FLAG_D = 0x08;
final static int FLAG_E = 0x10;
final static int FLAG_F = 0x20;
static int flag = 0;
public static void test() {
flag = FLAG_B|FLAG_C|FLAG_F;
printFlag(); // flag : FLAG_B FLAG_C FLAG_F
checkA(); // I don't have FLAG_A
// flag에 FLAG_A 추가
flag |= FLAG_A;
printFlag(); // flag : FLAG_A FLAG_B FLAG_C FLAG_F
checkA(); // I have FLAG_A
// flag에 FLAG_A 제거
flag &= ~FLAG_A;
printFlag(); // flag : FLAG_B FLAG_C FLAG_F
checkA(); // I don't have FLAG_A
}
public static void checkA() {
if ((flag&FLAG_A) != 0) {
Log.i("flag", "I have FLAG_A");
} else {
Log.i("flag", "I don't have FLAG_A");
}
}
public static void printFlag() {
String result = "flag : ";
if ((flag&FLAG_A) != 0) result += "FLAG_A ";
if ((flag&FLAG_B) != 0) result += "FLAG_B ";
if ((flag&FLAG_C) != 0) result += "FLAG_C ";
if ((flag&FLAG_D) != 0) result += "FLAG_D ";
if ((flag&FLAG_E) != 0) result += "FLAG_E ";
if ((flag&FLAG_F) != 0) result += "FLAG_F ";
Log.i("flag", result);
}
}