通过意图

时间:2015-10-27 16:14:04

标签: android android-support-library

通过Intent发送IntDef的最佳方法是什么?

ps:如果你只是将它作为一个int发送,你就会失去类型检查,这是拥有intdef的主要目标

1 个答案:

答案 0 :(得分:0)

您的IntDef在运行时不可用。要做的就是在意图接收活动中封装意图的生成。

public class MyActivity extends Activity {

    private static final String KEY_NAVIGATION_MODE = "navigation_mode";
    private @NavigationMode int mNavigationMode;

    public static Intent getStartIntent(Context context, @NavigationMode String navigationMode) {
        Intent intent = new Intent(context, MyActivity.class);
        intent.putExtra(KEY_NAVIGATION_MODE, navigationMode);
        return intent;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //noinspection WrongConstant Safe because we saved it in #getStartIntent
        mNavigationMode = getIntent().getIntExtra(KEY_NAVIGATION_MODE, NAVIGATION_MODE_YOUR_DEFAULT);
    }
}