【问题标题】:Get null from intent extra从额外的意图中获取空值
【发布时间】:2023-03-25 10:10:01
【问题描述】:

我正在尝试将字符串从一个活动传递到另一个活动。我似乎无法获得额外的意图。我哪里错了?

这里是代码

将额外内容放入意图中:

public void onClick(View v) {
    // TODO Auto-generated method stub
    String string = editTextFeild.getText().toString();
    Intent i = new Intent("com.com.com.otherclass");
    i.putExtra("dat", string);
    startActivity(new Intent("com.com.com.otherclass"));
}

从 Intent 中获取数据(在 com.com.com.otherclass 中):

Bundle bundle = getIntent().getExtras();
if (bundle != null){
    String string = bundle.getString("dat");
    textView.setText(string);
}

附言这些不是我在代码中使用的实际名称:)

提前致谢:)

【问题讨论】:

  • 你检查过editTextField不为空吗?
  • 是的,每次我测试它,它都有一个价值:)
  • 你为什么要构建一个新的 Intent 甚至不使用它...?
  • 那是我的问题。我现在改了:)

标签: android android-intent


【解决方案1】:

在您的 startActivity 行中,您正在创建一个新的 Intent。改为传递“i”。

startActivity(i);

【讨论】:

  • 这样吗? startActivity(new Intent(i));
  • 不,您已经在上面几行创建了所需的Intent i,只需执行startActivity(i); 这就是您的字符串在i 中的位置。
【解决方案2】:

要将任何数据或字符串发布到其他活动,只需将以下代码行用于将您的数据传输到变量中的其他活动

            Intent itemintent = new Intent(this, ShowDescription.class);
        Bundle b = new Bundle();
        b.putInt("position", position);
        b.putStringArray("title_s", title_s);
        b.putStringArray("desc_s", desc_s);
        b.putStringArray("link_s", link_s);
        itemintent.putExtra("android.intent.extra.INTENT", b);
        startActivity(itemintent);

这会将您的数据发布到其他 Activity Showdescription.java 类

在哪里可以通过以下方法获取数据。

Bundle b = startingIntent.getBundleExtra("android.intent.extra.INTENT");
title_s = b.getStringArray("title_s");
desc_s = b.getStringArray("desc_s");
link_s = b.getStringArray("link_s");
pub_s = b.getStringArray("position");

这将获取数据。 有关获取数据的更多信息,请参阅以下链接 http://grabcodes.blogspot.in/2012/08/passing-data-between-two-activities.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多