写一个简单的例子,里面包含两个Activity,第一个Activity跳转到第二个Activity的时候,传递一个数进去,数值为1,第二个Activitv回传数据回去,回传的时候将第一个Activity传过来的数据+1后回传。最后将回传回来的数据使用Log打印出来
帮你写一个简单的示列,其中包含了两个 Activity,实现了数据的传递和回传:
第一个 Activity :
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goToSecondActivity(View view) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("data", 1);
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
int returnedData = data.getIntExtra("returnedData", 0);
Log.i("Returned Data", String.valueOf(returnedData));
}
}
}
第二个 Activity:
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class SecondActivity extends AppCompatActivity {
private int data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
data = getIntent().getIntExtra("data", 0);
}
public void returnData(View view) {
data += 1;
Intent intent = new Intent();
intent.putExtra("returnedData", data);
setResult(RESULT_OK, intent);
finish();
}
}
在 XML 布局文件中,你需要创建 activity_main.xml
和 activity_second.xml
。在 MainActivity 的布局中,添加一个按钮,点击该按钮跳转到 SecondActivity。在 SecondActivity 的布局中,添加一个按钮,点击该按钮回传数据。
在 AndroidManifest.xml 文件中,确保已经正确注册了 MainActivity 和 SecondActivity。
当你在 MainActivity 中点击按钮跳转到 SecondActivity,并从 SecondActivity 中回传数据时,回传的数据会在 MainActivity 的 onActivityResult() 方法中被接收并打印到 Log 中。