android - putExtras 多个 putString 不工作

标签 android eclipse extras

我需要将 2 个变量从一个 Activity 传递到另一个 Activity 。

第一个 Activity 我有以下内容:

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    Bundle bundle=new Bundle();
switch (item.getItemId()){ 

case 1: 

    bundle.putString(drinkButton, "4");
    bundle.putString(drinkType, "1");
    Intent myIntent1 = new Intent(this, DrinksList.class);
    myIntent1.putExtras(bundle);
    startActivityForResult(myIntent1, 0);
    return true;

case 2: 

    bundle.putString(drinkButton, "1");
    bundle.putString(drinkType, "2");
    Intent myIntent2 = new Intent(this, DrinksList.class);
    myIntent2.putExtras(bundle);
    startActivityForResult(myIntent2, 0);
    return true;
}
return false;

然后在第二个 Activity 中,我使用它来取回值,但两个值相同,即与“drinkType”相同,情况 1 我都得到“1”,情况 2 我得到“2”当我希望得到 4,1 和 1,2。

Bundle extras = getIntent().getExtras();

        drinkButton = extras.getString(drinkButton);


        drinkType = extras.getString(drinkType);

    Toast.makeText(this, "drink Button = "+drinkButton+"  Drink Type = "+drinkType, Toast.LENGTH_LONG).show();  


} 

看来我不能超过一个额外的。有什么想法吗?

最佳答案

如果您不为变量 drinkBut​​tondrinkType 赋值,当您第一次使用它们时它们都是 null Activity 。在这种情况下,您的代码:

bundle.putString(drinkButton, "4");
bundle.putString(drinkType, "1");

相当于

bundle.putString(null, "4");
bundle.putString(null, "1");

看,您正在使用具有 null 值的变量作为 putString() 的“关键”参数。

像这样设置“关键”参数的最常见方法是使用常量。例如:

public interface IntentConstants {
    public static final String EXTRA_DRINK_BUTTON = "DrinkButton";
    public static final String EXTRA_DRINK_TYPE = "DrinkType";
}

然后在您的 Activity 中,使用这些常量,如下所示:

bundle.putString(IntentConstants.EXTRA_DRINK_BUTTON, "4");
bundle.putString(IntentConstants.EXTRA_DRINK_TYPE, "1");

并在第二个 Activity 中检索它们:

String drinkButton = extras.getString(IntentConstants.EXTRA_DRINK_BUTTON);
String drinkType = extras.getString(IntentConstants.EXTRA_DRINK_Type);

顺便说一句,您将整数值作为 String extras 传递是否有特殊原因?为什么不将它们作为整数传递?

关于android - putExtras 多个 putString 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241646/

相关文章:

android - 在 for 循环的自定义通知中动态添加 RemoteViews,设置 pendingintent 时出现问题

Android:如何更改 RadioButton 的大小

java - "setDataSource failed"异常

java - 如何在android表格中添加行

java - "Referenced Libraries"- 从 SVN check out Eclipse 项目时可折叠消失

android - 单元测试 Android Mockito 中的 Intent extras

java - 需要Android程序连接到wifi打印机并物理打印内容

android - 测试静态响应 RPC :S-7:AEC-0

android - 奇怪的 LogCat 错误

java - 简单的 Android 游戏中 Intent 崩溃