use*_*784 2 eclipse android extras
我需要将2个变量从一个活动传递到另一个活动.
第一项活动我有以下内容:
@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;
Run Code Online (Sandbox Code Playgroud)
然后在第二个活动中我使用它来获取值,但两个值都是相同的,即与'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();
}
Run Code Online (Sandbox Code Playgroud)
看来我不能超过一个额外的.有任何想法吗?
如果你不赋值给变量drinkButton和drinkType,他们都null当你在第一个活动中使用它们.在这种情况下,您的代码:
bundle.putString(drinkButton, "4");
bundle.putString(drinkType, "1");
Run Code Online (Sandbox Code Playgroud)
相当于
bundle.putString(null, "4");
bundle.putString(null, "1");
Run Code Online (Sandbox Code Playgroud)
请参阅,您使用带有null值的变量作为"关键"参数putString().
设置这样的"关键"参数的最常用方法是使用常量.例如:
public interface IntentConstants {
public static final String EXTRA_DRINK_BUTTON = "DrinkButton";
public static final String EXTRA_DRINK_TYPE = "DrinkType";
}
Run Code Online (Sandbox Code Playgroud)
然后在您的活动中,使用这些常量,如下所示:
bundle.putString(IntentConstants.EXTRA_DRINK_BUTTON, "4");
bundle.putString(IntentConstants.EXTRA_DRINK_TYPE, "1");
Run Code Online (Sandbox Code Playgroud)
并在第二个Activity中检索它们:
String drinkButton = extras.getString(IntentConstants.EXTRA_DRINK_BUTTON);
String drinkType = extras.getString(IntentConstants.EXTRA_DRINK_Type);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,是否有一个特殊的原因,你将整数值作为字符串附加项传递?为什么不将它们作为整数传递?
| 归档时间: |
|
| 查看次数: |
4433 次 |
| 最近记录: |