有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何接收和接收多个隐含意图的数据?

我将一个隐式意图从一个活动发送到另一个活动,我想发送一些字符串变量。我这样做是出于一种隐含的意图,因为我希望在多个项目中使用活动B,它是图书馆项目的一部分

我的意图运行得很好,但额外的数据没有在活动B中读取

以下是我在活动A中创建意图的代码:

    Intent intent = new Intent(this, ShareResultsActivity.class);
    intent.putExtra(EMAIL_SUBJECT, "Results");//String
    intent.putExtra(RESULTS_SAVENAME, saveName);//String
    intent.putExtra(RESULTS_BODY, body);//String
    intent.putExtra(WITH_SAVE_BUTTON, withSaveButton);//Boolean
    startActivity(intent);

在活动B中:

    Bundle extras = getIntent().getExtras();

    Boolean withSaveButton = true;

    if(extras != null){
        emailSubject = extras.getString("EMAIL_SUBJECT");
        resultsSaveName = extras.getString("RESULTS_SAVENAME");
        resultsBody = extras.getString("RESULTS_BODY");
        withSaveButton = extras.getBoolean("WITH_SAVE_BUTTON", true);
    }

这不起作用,字符串变量为空

我还试图以明确的意图接收数据的方式做到这一点:

    Intent intent = getIntent();

    emailSubject = intent.getStringExtra("EMAIL_SUBJECT");
    resultsSaveName = intent.getStringExtra("RESULTS_SAVENAME");
    resultsBody = intent.getStringExtra("RESULTS_BODY");
    Boolean withSaveButton = intent.getBooleanExtra("WITH_SAVE_BUTTON", true);

但这也不管用

我能让它工作的唯一方法是引用getStringExtra中的发送活动,但我不能这样做,因为它应该是一个库类

有人能解释一下吗?还是我走错了路


共 (1) 个答案

  1. # 1 楼答案

    我假设你的代码是这样的:

    final static String EMAIL_SUBJECT = "email_subject";
    //  RESULTS_SAVENAME and others are the same style.
    Intent intent = new Intent(this, ShareResultsActivity.class);
    intent.putExtra(EMAIL_SUBJECT, "Results");//String
    startActivity(intent);
    

    然后在你的另一项活动中:

    Intent intent = getIntent();
    emailSubject = intent.getStringExtra("email_subject");
    // or this
    // emailSubject = intent.getStringExtra(EMAIL_SUBJECT);