MyPanelActivity
包含一个带有项目列表的 recyclerView。每个项目都有一个点击事件。此点击打开DetailsActivity
。
DetailsActivity
有一个 floatingActionButton 可以打开一个全屏对话框(我的类DetailDialogFragment
extends DialogFragment
)。
DetailDialogFragment
有一个带解雇的向上/主页按钮。
问题:如果用户在向上按钮上单击,对话框会被关闭,但也会DetailsActivity
消失,并且应用程序会返回到PanelActivity
.
可能的原因:对话框的向上按钮下方是DetailsActivity
. 当一个对话框结束一个活动并且在同一个地方都有一个向上按钮时,是否可以触发两个点击事件?
编辑:显示一些代码。
从 PanelActivity 打开 DetailsActivity(单击 recyclerView 中的一项)。
Intent intent = new Intent(context, DetailsActivity.class);
intent.putExtra("headerCode", headerCode.getText());
context.startActivity(intent);
DetailsActivity 中的向上按钮。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
在 DetailsActivity 中打开全屏对话框。
private void showCreateDetailDialog() {
FragmentManager fragmentManager = getSupportFragmentManager();
DetailDialogFragment newFragment = new DetailDialogFragment();
// The device is smaller, so show the fragment fullscreen
FragmentTransaction transaction = fragmentManager.beginTransaction();
// For a little polish, specify a transition animation
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
// To make it fullscreen, use the 'content' root view as the container
// for the fragment, which is always the root view for the activity
transaction.add(android.R.id.content, newFragment)
.addToBackStack(null).commit();
}
最后,DetailDialogFragment 中的向上按钮。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.save) {
validateForm();
return true;
} else if (id == android.R.id.home) {
// handle close button click here
dismiss();
return true;
}
return super.onOptionsItemSelected(item);
}