In the switch statement,I use some constants which are defined in another class.
The IDE tell me constant expression required
.
I am writing an Android app, and in the MainActivity I write like 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 another class I use the switch statement like 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:
// do something
break;
case messageFramentIndex:
// do something
break;
case snsFragmentIndex:
// do something
break;
case discoveryFragmentIndex:
// do something
break;
case mineFragentIndex:
// do something
break;
default:
break;
}
the Android Studio tell me that constant expression required
,but I truely use static fianl int
. Maybe you can help solve this problem,Thanks.