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

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

 

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

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

有没有改了其他界面的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会告诉你——让重复的代码来的更猛烈些吧!

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值