我正在使用以下代码在工具栏中实现后退按钮:
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时,我没有传递任何东西,因此得到以下信息:
保龄球B1和B2属于不同的联赛。
我经历了类似how to override action bar back button in android?这样的几个不同主题,并且尝试了其中的几个不同建议。他们都没有为我工作。
如何将LeagueId和BowlerId传递回BowlerActivity,以便在启动时从数据库中过滤适当的Bowler,以显示在列表视图中。
我什至需要传回这些值吗?任何帮助将不胜感激。
答案 0 :(得分:1)
在SeriesActivity中,使用startActivityForResult()方法调用BowlerActivity
例如:
docker run --name DockerAgent1 -e AGENT_NAME=DockerAgent1 <same image id>
docker run --name DockerAgent2 -e AGENT_NAME=DockerAgent2 <same image id>
在BowlerActivity中,设置要返回到SeriesActivity的数据。 如果您不想返回,请不要进行任何设置。
Intent i = new Intent(SeriesActivity.this, BowlerActivity.class);
startActivityForResult(i, 1);
现在,在SeriesActivity类中,为onActivityResult()方法编写以下代码。
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();