android - java : constant expression required. switch satement use some constants which are defined in another calss -
this question has answer here:
in switch statement,i use constants defined in class. ide tell me constant expression required.
i writing android app, , in mainactivity write this:
private static final int homefragmentindex = 0; private static final int messagefragmentindex = 1; private static final int snsfragmentindex = 2; private static final int discoveryfragmentindex = 3; private static final int minefragmentindex = 4; public static int gethomefragmentindex() { return homefragmentindex; } public static int getmessagefragmentindex() { return messagefragmentindex; } public static int getsnsfragmentindex() { return snsfragmentindex; } public static int getdiscoveryfragmentindex() { return discoveryfragmentindex; } public static int getminefragmentindex() { return minefragmentindex; } and in class use switch statement this:
final int homefragmentindex = mainactivity.gethomefragmentindex(); final int messageframentindex = mainactivity.getmessagefragmentindex(); final int snsfragmentindex = mainactivity.getsnsfragmentindex(); final int discoveryfragmentindex = mainactivity.getdiscoveryfragmentindex(); final int minefragentindex = mainactivity.getminefragmentindex(); switch (mcurindicator) { case homefragmentindex: // break; case messageframentindex: // break; case snsfragmentindex: // break; case discoveryfragmentindex: // break; case minefragentindex: // break; default: break; } the android studio tell me constant expression required,but truely use static fianl int. maybe can solve problem,thanks.
class some{ public static final int homefragmentindex = 0; public static final int messagefragmentindex = 1; public static final int snsfragmentindex = 2; public static final int discoveryfragmentindex = 3; public static final int minefragmentindex = 4; } class anotherclass{ void yourmethod(int mcurindicator){ switch (mcurindicator) { case some.homefragmentindex: // break; case some.messagefragmentindex: // break; case some.snsfragmentindex: // break; case some.discoveryfragmentindex: // break; case some.minefragmentindex: // break; default: break; } } }
Comments
Post a Comment