【问题标题】:Multiple Intents in a Single Activity单个活动中的多个意图
【发布时间】:2014-05-25 03:42:55
【问题描述】:

在将多条数据(在本例中为三个数组(两个 int,一个字符串))发送到第二个活动页面时遇到问题。

我不确定这是如何完成的。我想知道的是,如果可能的话,如何在一个 Start Activity 方法中发送这些数组。我当前的代码是:

public void onClickGoToTeamSummary(View view)
{
    Intent intentTeamNames = new Intent(MainActivity.this, ResultsActivity.class);
    Intent intentTeamPoints = new Intent(MainActivity.this, ResultsActivity.class);
    Intent intentTeamGoals = new Intent(MainActivity.this, ResultsActivity.class);

    intentTeamNames.putExtra("footballClubs", myTeams);
    intentTeamPoints.putExtra("clubPoints", pointsAttained);
    intentTeamGoals.putExtra("clubGoals", goalsScored);

    startActivity(intentTeamPoints);
    startActivity(intentTeamNames);
    startActivity(intentTeamGoals);
}

我试过了:

startActivity(intentTeamPoints, intentTeamNames, intentTeamGoals);

无济于事。为了提供帮助,我在下一个活动中的 getIntent 如下所示:

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_results);

    Intent intentClubNames = getIntent();
    String[] club_names = intentClubNames.getStringArrayExtra("footballClubs");

    Intent intentClubPoints = getIntent();
    int[] team_points = intentClubPoints.getIntArrayExtra("clubPoints");

    Intent intentTeamGoals = getIntent();
    int[] club_goals = intentTeamGoals.getIntArrayExtra("clubGoals");
}

只要使用一个 startActivity,代码本身就可以工作。如果有人可以帮助我,我想知道如何通过一项活动将我的所有数组传递到第二个活动页面。

【问题讨论】:

标签: java android android-intent start-activity


【解决方案1】:

试试这个..

您可以在单个Intent 中发送所有值

public void onClickGoToTeamSummary(View view)
{
    Intent intentTeamNames = new Intent(MainActivity.this, ResultsActivity.class);

    intentTeamNames.putExtra("footballClubs", myTeams);
    intentTeamNames.putExtra("clubPoints", pointsAttained);
    intentTeamNames.putExtra("clubGoals", goalsScored);

    startActivity(intentTeamNames);
}

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_results);

    Intent intentClubNames = getIntent();
    String[] club_names = intentClubNames.getStringArrayExtra("footballClubs");
    int[] team_points = intentClubNames.getIntArrayExtra("clubPoints");
    int[] club_goals = intentClubNames.getIntArrayExtra("clubGoals");
}

【讨论】:

  • 完美运行。没有意识到您可以将多个值放入单个 Intent。再次感谢。
【解决方案2】:

您不使用多个Intents,而是使用多个附加功能。

// create your Intent as normal
Intent myIntent = new Intent(MainActivity.this, ResultsActivity.class);

// then you can add multiple extras
myIntent.putExtra("footballClubs", myTeams);
myIntent.putExtra("clubPoints", pointsAttained);
myIntent.putExtra("clubGoals", goalsScored);
startActivity(myIntent);

然后接收它们将是相同的。您将只收到一个 Intent 并正常使用密钥来处理每个额外的 Array

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多