【问题标题】:The value passing through Intent returns null some time通过 Intent 传递的值有时会返回 null
【发布时间】:2013-07-15 05:36:14
【问题描述】:

我正在通过 Intent 传递一些值,在某些情况下,通过它传递的值返回 null。在它设置意图之前,该值不为空。这是我设置意图的代码。

Intent propertyIntent = new Intent(mContext , SomeActivity.class);
propertyIntent.putExtra(START_MODE_TAG,MODE_EDIT_RECORDING);
propertyIntent.putExtra(ACTIVITY_MODE_TAG, "dm");
propertyIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
propertyIntent.putParcelableArrayListExtra("det_list", detList);
mContext.startActivity(propertyIntent);

这是用于获取意图值的代码

passedModeName = getIntent().getStringExtra(DMApplication.START_MODE_TAG);

只有 START_MODE_TAG 值返回 null 其余所有返回正确。我也尝试设置onNewIntent()。但是没用。

我在其中使用的常量

public static final String ACTIVITY_MODE_TAG="activity_mode";
public static final String START_MODE_TAG="StartMode";
public static final String MODE_NEW_RECORDING="new";
public static final String MODE_EDIT_RECORDING="edit";
public static final String MODE_REVIEW_RECORDING="review";
public static final String MODE_COPY_RECORDING="copy";
public static final String MODE_LAUNCH_RECORDING="launch";

【问题讨论】:

  • 那么MODE_EDIT_RECORDING 必须为空。
  • 请您也发布您的常量定义吗?
  • 不知道为什么它会有所作为(它对我有影响)但尝试限定所有关键字符串,例如START_MODE_TAG="com.my.package.StartMode"

标签: android android-intent


【解决方案1】:

您应该通过以下方式获取额外数据。

Bundle extras = getIntent().getExtras();
selectedGroupId = extras.getString(DMApplication.START_MODE_TAG);

【讨论】:

    【解决方案2】:

    检查 *DMApplication.START_MODE_TAG* 是否与 *START_MODE_TAG* 相同且 MODE_EDIT_RECORDING 不为空。

    【讨论】:

    • 我检查过了,在我将这些设置在 Intent 上之前它是有价值的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 2014-11-16
    相关资源
    最近更新 更多