2015-10-27 52 views
3

以最佳方式通過意圖發送IntDef的任何想法?IntDef通過意圖

PS:如果你只是把它作爲一個int你失去類型檢查,這是具有intdef

+0

基本上,使用它作爲一個int並通過輔助方法轉換爲您的IntDef。 幫助閱讀,http://stackoverflow.com/a/32160715/794088&http://stackoverflow.com/a/31737425/794088 – petey

回答

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); 
    } 
}