我正在使用以下代码在工具栏中实现后退按钮:

super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_series);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar( toolbar );
        Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);

        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SeriesActivity.this, BowlerActivity.class));
                finish();
            }
        });


我的问题是当.setNavigationOnClickListener注册点击时,它会回到上一个活动减去正确的Bowlers的点击。当我进入“系列活动”时,我要向其传递LeagueId和BowlerId。当我回到BowlerActivity时,我没有传递任何东西,因此得到以下信息:

javascript - 按下“后退”按钮时,将正确的信息传递给上一个 Activity-LMLPHP javascript - 按下“后退”按钮时,将正确的信息传递给上一个 Activity-LMLPHP javascript - 按下“后退”按钮时,将正确的信息传递给上一个 Activity-LMLPHP

圆顶硬礼帽B1和B2属于不同的联赛。

我经历了几个不同的线程,例如how to override action bar back button in android?,并且尝试了其中的几个不同建议。他们都没有为我工作。

我如何将LeagueId和BowlerId传递回BowlerActivity,以便启动时我从数据库中过滤适当的Bowler,以显示在列表视图中。

我什至需要传回这些值吗?任何援助将不胜感激。

最佳答案

在您的SeriesActivity中,使用startActivityForResult()方法调用BowlerActivity

例如:

Intent i = new Intent(SeriesActivity.this, BowlerActivity.class);
startActivityForResult(i, 1);


在BowlerActivity中,设置要返回到SeriesActivity的数据。
如果您不想返回,请不要进行任何设置。

For example: In BowlerActivity if you want to send back data:

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

If you don't want to return data:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();


现在,在SeriesActivity类中,为onActivityResult()方法编写以下代码。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}


来源=> https://stackoverflow.com/a/10407371/9956766

10-04 23:01