gpt4 book ai didi

android - 使操作栏 "up navigation"触发 dialogfragment

转载 作者:行者123 更新时间:2023-11-29 00:23:59 24 4
gpt4 key购买 nike

我可以让操作栏的“向上”导航触发一个确认对话框 fragment ,上面写着“您确定要返回吗?”

最佳答案

拦截 up ActionBar 按钮按下是微不足道的,因为一切都是通过 onOptionsItemSelected 完成的。 documentation , 建议你使用android.R.id.home 去搭配NavUtils(前提是你设置了父activity的元数据所以NavUtils 不抛出异常等):

@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);
}

您的 DialogFragment 应该提供实际返回的确认。由于您现在使用的是 Fragment 而不是 Activity,因此您需要将 getActivity() 传递给 NavUtils.

NavUtils.navigateUpFromSameTask(getActivity());

并将onOptionsItemSelected()更改为

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
new ConfirmationDialog().show(getSupportFragmentManager(), "confirmation_dialog");
return true;
}
return super.onOptionsItemSelected(item);
}

ConfirmationDialog 是您的自定义 DialogFragment

请注意,对于此示例,我使用的是 support Fragment API。如果不是,请确保将 getSupportFragmentManager() 更改为 getFragmentManager()

关于android - 使操作栏 "up navigation"触发 dialogfragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com