我自己有两个活动,每个活动都有一个按钮Add to Home Screen
。
当用户点击此按钮时,我正在为我的应用创建一个快捷方式,该快捷方式将打开将其添加到主屏幕的特定活动。
在创建快捷方式时,我想在intent中添加一些额外的数据,这将调用特定的Activity。为此,我使用以下代码:
final Intent shortcutIntent = new Intent(this, MainActivity.class);
char CharData[] = new char[5];
Arrays.fill(CharData,'1');
shortcutIntent.putExtra("Extra", CharData);
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.First_Shortcut_Title));
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(this, R.drawable.red));
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
由此我可以在主屏幕上创建快捷方式,并根据需要导航到相应的活动。我遇到的问题是,当我尝试从活动中获取额外数据时,它总是重新调整Null
。
Intent CallingIntent = getIntent();
char[] IntentData = CallingIntent.getCharArrayExtra("Extra");
即。 IntentData
的值始终为NULL
。
有谁能建议我做错了什么?
我尝试使用String
而不是char[]
数组进行类似操作,但它运行正常。数组实现可能有什么问题?
答案 0 :(得分:0)
在检索数组数据时,你的密钥错误。
错误的价值是:
char[] IntentData = CallingIntent.getCharArrayExtra("shape");
正确的价值是:
char[] IntentData = CallingIntent.getCharArrayExtra("Extra");