Java 无需startActivity即可按意图移动数据
我有两项活动。在第二个活动中,我想通过按钮“返回”将数据移动到第一个活动 通常我会这样移动:Java 无需startActivity即可按意图移动数据,java,android,Java,Android,我有两项活动。在第二个活动中,我想通过按钮“返回”将数据移动到第一个活动 通常我会这样移动: button12.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { pass=editText2.getText().toString(); Intent intent = new Intent(FirstActivity.this, MapsAc
button12.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
pass=editText2.getText().toString();
Intent intent = new Intent(FirstActivity.this, MapsActivity.class);
intent.putExtra("pass_value", pass);
startActivity(intent);
}
});
但是现在我不想开始活动,而是想关闭活动,所以我需要使用finish()
目前我创建了此,但没有工作:
b2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, FirstActivity.class);
intent.putExtra("number", numberOfTrue);
finish();
}
});
在这段代码中我需要更多的东西,但我不知道是什么。b2.setOnClickListener(newview.OnClickListener(){
开始一项新的活动
Intent intent = new Intent(FirstActivity.this, MapsActivity.class);
intent.putExtra("pass_value", pass);
startActivityForResult(intent,1)
您可以使用setResult方法来实现所需的结果
Intent output = new Intent();
output.putExtra("number", numberOfTrue);
setResult(Activity.RESULT_OK, output);
finish();
在FirstActivity中获得您的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == Activity.RESULT_OK && data != null) {
int num = data.getIntExtra("pass_value");
}
}
您需要按功能打开startActivityForResult
startActivityForResult(意向,int请求代码) 并获取函数中返回的数据
onActivityResult
例如,你可以看到一张照片的相机面创建一个单独的类或共享首选项来存储数据,并在以后的活动中检索数据。使用intent将创建一个新的活动..因此创建新实例不是一个好方法显然选择是
startActivityForResult
带有setResult的代码块也是一个好方法需要吗?只有1块和3块代码吗?您显示了3块代码,“开始一个新的活动”,“您可以使用setResult方法来实现您想要的结果”和“得到您想要的结果”是的,这样您就可以得到您想要的,有什么问题吗“int num=data.getIntExtra(“number”);“这里有问题-意图无法应用于(字符串)和(Int)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == Activity.RESULT_OK && data != null) {
int num = data.getIntExtra("pass_value");
}
}