Android如何正确的写startActivity——这些年你写对了吗

有没有在两个Activity之间调试了半天怎么也取不到intent里面的值,最后才发现原来数据类型对不上?

 

        intent.putExtra("id",1L);
        int id = getIntent().getIntExtra("id", 0);

有没有准备增加Activity的接收字段,确发现n多界面都突袭而来,根本无从下手的情况?

Android如何正确的写startActivity——这些年你写对了吗_第1张图片

有没有改了其他界面的String不知为何动了intent的字段而突然出现的bug入侵?

 

        int id = getIntent().getIntExtra("ids", 0);
        intent.putExtra("id",1L);


现在就解放你的双手,尽情的挥霍去吧!

你只需要如此而已:

public class WebActivity extends BaseActivity {
    //如果你真的很懒很懒也可以不声明这些常量,直接putExtra(I_A,...),表达出意思让别人能看懂即可
    private static final String INTENT_TITLE = I_A, INTENT_URL = I_B, INTENT_SERVICESTRING = I_C;
    public static void toThisActivity(Context context, String title, String url) {
        toThisActivity(context, title, url, null);
    }
    /**
     * @param serviceString 注释很重要
     */
    public static void toThisActivity(Activity activity, String title, String url, String serviceString) {        
  activity
.startActivity(new Intent(context, WebActivity.class)
                .putExtra(INTENT_TITLE, title)
                .putExtra(INTENT_URL, url)
                .putExtra(INTENT_SERVICESTRING, serviceString));
    }
@Override
protected void initData() {
    mUrl = getIntent().getStringExtra(INTENT_URL);
    mTitle = getIntent().getStringExtra(INTENT_TITLE);
    mServiceString = getIntent().getStringExtra(INTENT_SERVICESTRING);
}

}

 

你的跳转到WebActivity其他人只需要闭着眼写即可

 

WebActivity.toThisActivity(mActivity, "活动", bean.getJumpTo());

 

I_A是什么鬼?基类里面的静态常量abcd而已

    protected static final String I_A = "A", I_B = "B", I_C = "C", I_D = "D",
            I_E = "E", I_F = "F", I_G = "G", I_H = "H", I_I = "I", I_J = "J";

 

可能你会想,虽然优雅了点,但

代码也多了好多...

android studio的Live Templates会告诉你——让重复的代码来的更猛烈些吧!

Android如何正确的写startActivity——这些年你写对了吗_第2张图片

英语水平太差,live只能写成这样,不喜勿喷

你可能感兴趣的:(android教程,不做框架只做UI)