【问题标题】:How to add/pass multiple values to Intent object?如何向 Intent 对象添加/传递多个值?
【发布时间】:2016-04-09 01:03:36
【问题描述】:
我的第一个活动中有两个 EditText 对象。当我去下一个活动时,我想要他们的价值观。
让我们假设 EditText 对象是 inp1、inp2 并且它们只能接受数字。
请提及如何将它们的值添加到 int Intent 对象以及如何在下一个活动的 .java 文件中提取它们的值。
【问题讨论】:
标签:
java
android
android-intent
android-studio
【解决方案1】:
开始,您的代码将如下所示,
发送方:
Intent myIntent = new Intent(A.this, B.class);
myIntent.putExtra("intVariableName1", intValue1);
myIntent.putExtra("intVariableName2", intValue2);
startActivity(myIntent);
接收方:
Intent mIntent = getIntent();
int intValue1 = mIntent.getIntExtra("intVariableName1", 0);
int intValue2 = mIntent.getIntExtra("intVariableName2", 0);
希望对你有帮助。
【解决方案2】:
使用此代码
Intent intent = new Intent(first.this, Second.class);
Bundle extras = new Bundle();
extras.putString("value1",String.valueof(inp1.getText().toString()));
extras.putString("value2",String.valueof(inp2.getText().toString()));
intent.putExtras(extras);
startActivity(intent);
然后在你的第二个 Activity onCreate()
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String value1 = extras.getString("value1");
String value2 = extras.getString("value2");
【解决方案3】:
为了使事情更容易和可重用,您可以像这样制作自己的意图
public class MyIntent extent Intent{
private static final String FIRST_VALUE;
private static final String SECOND_VALUE;
public MyIntent(Context context, String firstValue, String secondValue){
super(context,MySecondActivity.class);
putExtra(FIRST_VALUE, firstValue);
putExtra(SECOND_VALUE, secondValue);
}
public String getFirstValue(){
getStringExtra(FIRST_VALUE);
}
public String getSecondValue(){
getStringExtra(SECOND_VALUE);
}
}
发件人:
startActivity(new MyIntent(this,"FirstString", "SecondString"));
接收方:
MyIntent myIntent = (MyIntent)getIntent();
String firstValue = myIntent.getFirstValue();
String secondValue = myIntent.getSecondValue();