无法传递数据putExtra

时间:2018-12-14 20:44:48

标签: android

这两个数据在“ putExtras”中混合在一起。 当我在“ Parcelable intent_string = extras.getParcelable(getString(R.string.intent_name));”中注释“ //”时,它已修复。 在我看来,第二个“ putExtra”会覆盖第一个“ putExtra”

1º活动

    Intent intent =  new Intent(HumanActivity.this, AnatoActivity.class);

            Bundle extras = new Bundle();
            extras.putString(getString(R.string.calling_activity),getString(R.string.dinamic_activity));
            extras.putParcelable(getString(R.string.intent_name), mNameList.get(position));
            intent.putExtras(extras);
            startActivity(intent);

2º活动

Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    String calling_string = extras.getString(getString(R.string.calling_activity));
    Parcelable intent_string = extras.getParcelable(getString(R.string.intent_name));

错误-> if(intent.hasExtra(calling_string))

我不知道通过“ putExtra”传递各种数据有什么错误。

3 个答案:

答案 0 :(得分:0)

您可以改为添加多个strings

i.putExtra(ID_EXTRA, new String[] { "1", "111"});

答案 1 :(得分:0)

Bundle extras = new Bundle();
        extras.putString(getString(R.string.calling_activity),getString(R.string.dinamic_activity));
        extras.putParcelable(getString(R.string.intent_name), mNameList.get(position));
        intent.putExtras(extras);
        startActivity(intent);

我不确定您为什么在这里使用putParcelable方法。您的mNameList不是String的ArrayList吗?如果是这样,则应改用putString方法。

答案 2 :(得分:0)

您需要将数据作为自己的Parcelable类对象接收。

如果您的Name类实现了Parcelable,则将数据作为Name类对象接收。

尝试这样-

Name intent_string = extras.getParcelableExtra(getString(R.string.intent_name));

希望这可以解决您的问题。