Android的Activity接收putExtra传递的参数
一般情况方式如下打开Activity
Intent i = new Intent(this, ImgInfo.class); i.putExtra("id", mPhotoId); startActivity(i);
在Activity ImgInfo类的onCreate方法中写下如下的代码:
Bundle bud = getIntent().getExtras(); if (bud != null && bud.containsKey("id")) { mPhotoId = bud.getInt("id"); }
如果有设置singleInstance模式
<activity android:name="ImgInfo" android:label="@string/app_name"
android:screenOrientation="portrait" android:launchMode="singleInstance">
</activity>
就会发现除了第一次能正确接收之外,其他的会无效。
只是需要做的是重写onNewIntent方法,基本代码如下:
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); InitArg(); } private InitArg(){ Bundle bud = getIntent().getExtras(); if (bud != null && bud.containsKey("id")) { mPhotoId = bud.getInt("id"); }