找不到一种方法来正确传递带有意图 b.w 两个活动的数据



每当我从第一个活动移动到第二个活动,然后返回到第一个活动时,第一个活动中给定的值将变为空,即使我通过intent来回传递该值也是如此。

活动-1

String date = getIntent().getStringExtra("date");
String name = getIntent().getStringExtra("name");

textView1.setText(date);
textView2.setText(name);

b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(Main.this,date.class);
intent.putExtra("name1", name);
startActivity(intent);
}
});


活动-2

calendarView=(CalendarView)findViewById(R.id.calendarView);
String name1 = getIntent().getStringExtra("name1");
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {
String date = dayOfMonth+"-"+month+"-"+year;
Intent intent = new Intent(date.this , Main.class);
intent.putExtra("date", date);
intent.putExtra("name", name1);
startActivity(intent);
}
});

您没有取回数据,因为您正在开始一个新的活动,而不是返回到以前的活动从您的第一个活动开始,开始结果的活动

int LAUNCH_SECOND_ACTIVITY = 1
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, LAUNCH_SECOND_ACTIVITY);

从您的第二次活动返回结果

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

最后在您的第一个活动上,在onActivityResult 上接收第二个活动的结果

Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == LAUNCH_SECOND_ACTIVITY) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == Activity.RESULT_CANCELED) {
// Write your code if there's no result
}
}
} //onActivityResult