从Intent中获取额外的char []数据将返回null

时间:2014-05-12 12:45:07

标签: android android-intent

我自己有两个活动,每个活动都有一个按钮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[]数组进行类似操作,但它运行正常。数组实现可能有什么问题?

1 个答案:

答案 0 :(得分:0)

在检索数组数据时,你的密钥错误。

错误的价值是:

 char[] IntentData = CallingIntent.getCharArrayExtra("shape");

正确的价值是:

 char[] IntentData = CallingIntent.getCharArrayExtra("Extra");