gpt4 book ai didi

android - 通过 Intent 为一个 Activity 创建多个快捷方式

转载 作者:太空狗 更新时间:2023-10-29 13:11:23 25 4
gpt4 key购买 nike

我有一个 Activity 应该根据用户在主屏幕上按下的快捷方式显示不同的内容。

我的代码是这样的:

AndroidManifest.xml

    <activity
android:name=".activities.ShortcutActivity_"
android:parentActivityName=".activities.MainActivity_"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

创建快捷方式的方法:

private void createShortcut(String label){
Intent shortcut = new Intent(getApplicationContext(), ShortcutActivity_.class);
shortcut.setAction(Intent.ACTION_MAIN);

Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcut);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, label);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(getApplicationContext(),
R.mipmap.ic_launcher));
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
intent.putExtra("duplicate", false);
getApplicationContext().sendBroadcast(intent);
}

我是这样调用方法的:

createShortcut(ShortcutActivity_.class, "Shortcut 1");
createShortcut(ShortcutActivity_.class, "Shortcut 2");

在我的 Activity 中,我想检查标签并为每个快捷方式显示不同的内容,但它不起作用。只会创建一个快捷方式。

如何构建一个可以根据按下的快捷方式显示不同内容的动态 Activity?

感谢您的帮助!

最佳答案

以下代码适用于我的情况。

private void createShortcut(Class c, String label, int id) {
Intent shortcut = new Intent(getApplicationContext(), c);
shortcut.putExtra(SHORTCUT_ID, id);
shortcut.putExtra("duplicate", false);
shortcut.setAction(Intent.ACTION_DEFAULT);

Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcut);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, label);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(getApplicationContext(),
R.mipmap.ic_launcher));
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
intent.putExtra("duplicate", false);
getApplicationContext().sendBroadcast(intent);
}

在您的 Activity 中调用这样的方法:

createShortcut(ShortcutActivity.class, "Shortcut 2", 2);

然后在您的 ShortcutActivity 中获取这样的 Intent 并响应它。

Intent intent = getIntent();
if (intent == null)
return;

if (intent.getIntExtra(MainActivity.SHORTCUT_ID, 0) == 1){
textView2.setText("Shortcut 1");
}
if (intent.getIntExtra(MainActivity.SHORTCUT_ID, 0) == 2){
textView2.setText("Shortcut 2");
}

关于android - 通过 Intent 为一个 Activity 创建多个快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com