为了myapp://wallet
指向WalletActivity
,我编写了以下代码,并且它有效:
<activity
android:name=".ui.WalletActivity"
android:label="@string/title_activity_wallet"
android:screenOrientation="portrait"
android:theme="@style/MaterialThemeNoActionBar"
android:launchMode="singleTop"
android:exported="true">
<intent-filter android:label="@string/title_activity_link_wallet" >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="myapp"
android:host="wallet" />
</intent-filter>
</activity>
我为UserProfileActivity
执行了类似的操作,但它(显然)在行onCreate
中的函数String id = intent.getExtras().getString("id");
内崩溃,因为我没有为id
发送任何值该活动的意图。
那么,在这种情况下,我有没有办法将id传递给被调用活动的意图,在正常情况下我会在调用活动中使用intent.putExtra("id", id);
(intent
是被调用的活动)
答案 0 :(得分:5)
String id = intent.getExtras().getString("id")
是错误的。
您可以使用
检索与Intent
相关联的Uri
Uri uri = getIntent().getData();
然后,您可以使用其中一个可用的getter来检索id
,如果您提供的话。例如。 myapp://wallet/test?id=100
String id = data.getQueryParameter("id");
应该给你100