Android传递数据
我需要一些关于我正在为使用eclipse的android编写的应用程序的建议。我正在编写一个应用程序,它添加2个数字,并使用一个intent将数据传递回第一个活动。我不确定是否使用intent.putExtra(num1+num2),如有任何建议,将不胜感激。谢谢-您在第一次活动中需要:Android传递数据,android,Android,我需要一些关于我正在为使用eclipse的android编写的应用程序的建议。我正在编写一个应用程序,它添加2个数字,并使用一个intent将数据传递回第一个活动。我不确定是否使用intent.putExtra(num1+num2),如有任何建议,将不胜感激。谢谢-您在第一次活动中需要: Intent i = new Intent(this, SecondActivity.class); startActivityForResult(i, 1); protected void onActivi
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
int result=data.getIntExtra("result");
}
if (resultCode == RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult
在你们班上,这是做数学题的:
Intent returnIntent = new Intent();
returnIntent.putExtra("result",sumOfNumbers);
setResult(RESULT_OK,returnIntent);
finish();
您可以启动使用startActivityForResult()添加2个数字的活动,然后实现onActivityResult()回调以接收结果 在添加2个数字的活动中,可以使用setResult(resultCode,Intent)设置结果:
查看Android文档:您需要使用父Activity类的onActivityResult函数
int RESULT_CODE_CHILD_ACTIVITY = 1;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case (RESULT_CODE_CHILD_ACTIVITY) :
{
if (resultCode == Activity.RESULT_OK)
{
int yourInt = data.getIntExtra("yourInt", -1);
}
break;
}
}
}
您需要覆盖子活动的onDestroy函数以将数据传回
@Override
public void onDestroy()
{
Intent resultIntent = new Intent();
int yourInt = 5 + 4;
resultIntent.putExtra(yourInt, "yourInt");
setResult(Activity.RESULT_OK, resultIntent);
super.onDestroy();
}
假设您从活动A转到活动B,并且您希望将某些内容返回到活动A,那么下面是一个示例。希望有帮助: 代码转到活动B o按钮单击:
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivityForResult(intent, 2);
//2 is the request code. u can choose ur own.
}
});
同样在相同的activity override onActivityResult方法中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 2
if(requestCode==2)
{
Int x = data.getIntExtra ("num1");
Int y = data.getIntExtra ("num2");
}
}
在你的活动B中
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Bundle b = new Bundle();
b.putIntExtra("num1", int1);
b.putIntExtra("num2", int2);
Intent i = new Intent();
i.put(b);
finish();//finishing activity
}
});
你需要开始使用TractivityForresult和onActivityResult之类的东西。如果你不知道,请告诉我。我将试着用intent.putExtra(“added_vals”,num1+num2)来解释它;如果你想那样做的话。但问题是,活动应该是添加数据本身。因此,在您的活动中,您应该执行num1+num2=addedNumber并使用intent.putExtra(“added_val”,addedNumber);或者别的什么。非常感谢——我真的很感激。
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Bundle b = new Bundle();
b.putIntExtra("num1", int1);
b.putIntExtra("num2", int2);
Intent i = new Intent();
i.put(b);
finish();//finishing activity
}
});