有没有在两个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只能写成这样,不喜勿喷