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

brtdzjyr  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(235)

无论何时我从第一个活动移动到第二个活动,然后返回到第一个活动,第一个活动中给出的值都将为空,即使我通过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);
            }
        });
khbbv19g

khbbv19g1#

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

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

相关问题