- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种方法来发出“你确定你已经完成了吗?”当用户在编辑注释并添加注释 fragment 时按下后退导航按钮时,会出现警报框,但在查看注释 fragment 时不会出现警报框。下面我附上了每个 fragment 链接到的 Activity 的代码。如果您需要更多来自不同领域的代码,请告诉我。
public class NoteDetailActivity extends AppCompatActivity {
public static final String NEW_NOTE_EXTRA = "New Note";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_detail);
createAndFragment();
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeButtonEnabled(false);
}
private void createAndFragment(){
Intent intent = getIntent();
MainActivity.FragmentToLaunch fragmentToLaunch = (MainActivity.FragmentToLaunch) intent.getSerializableExtra(MainActivity.NOTE_FRAGMENT_TO_LOAD_EXTRA);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
switch(fragmentToLaunch){
case EDIT:
NoteEditFragment noteEditFragment = new NoteEditFragment();
setTitle(R.string.edit_fragment_title);
fragmentTransaction.add(R.id.note_container, noteEditFragment, "NOTE_EDIT_FRAGMENT");
break;
case VIEW:
NoteViewFragment noteViewFragment = new NoteViewFragment();
setTitle(R.string.view_fragment_title);
fragmentTransaction.add(R.id.note_container, noteViewFragment, "NOTE_VIEW_FRAGMENT");
break;
case CREATE:
NoteEditFragment noteCreateFragment = new NoteEditFragment();
setTitle(R.string.create_fragment_title);
Bundle bundle = new Bundle();
bundle.putBoolean(NEW_NOTE_EXTRA, true);
noteCreateFragment.setArguments(bundle);
fragmentTransaction.add(R.id.note_container, noteCreateFragment, "NOTE_CREATE_FRAGMENT");
break;
}
fragmentTransaction.commit();
}
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
NoteDetailActivity.this.finish();
}
})
.setNegativeButton("No", null)
.show();
}
}
最佳答案
通过获取 fragment 标签来做到这一点
获取这样的标签
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.main_container);
String tag = fragment.getTag(); // This will return the tag of fragment
然后使用 if-else 来完成任务
if (tag.equalsIgnoreCase("Home")) {
// Open aLERT box
}else if (tag.equalsIgnoreCase("Home2")) {
// Open aLERT box
}else if (tag.equalsIgnoreCase("Home2")) {
// Open aLERT box
}else{
// dO STUFF HERE
}
不要忘记添加fragment标签
关于java - 仅针对 3 个 fragment 中的 2 个出现 OnBackPressed() 警报框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37660617/
我有一个包含 2 个 Activity 的应用程序,第一个是从 http 加载数据并显示标题,第二个是特定标题的详细信息。 在硬件上从第二个屏幕按下第一页不会重新加载,这很好。 在后面的操作栏上,页面
我试图返回确认对话框,因此我决定处理 onbackpressed(),然后我将我的代码用于确认对话框,并为 null 监听器设置了 ok 和取消按钮。 @Override public void on
我有三个 java Activity : MainActivity 是您打开应用程序时的第一个屏幕。另外两个是PlayActivity和GuessActivity我在 Play 和 Guess Act
我已经坚持了好几天了。我有一个 Activity 。我实现了 @Override public void onBackPressed() { Log.e("TEST", "Pressed ba
我有一个带有 BottomNavigation 的应用程序(3 个项目)。 Item 1 加载 Fragment 1,Item 2 加载 Fragment 2,Item 3 加载 Fragment 3
我想在我的动态壁纸设置上实现 Appbrain 插页式广告, 我按照 - http://www.appbrain.com/info/sdk-docs/interstitial.html 上给出的步骤进
我有一个问题,这里也讨论了这个问题: onBackPressed never gets called 我试图在按下 Android 手机上的 native 后退按钮时取消倒计时计时器。所以我想重写 o
我尝试使用以下内容配置“后退”按钮: Public void onBackPressed(){return;} 但它不会产生任何东西(我也尝试过 super.onBack... 和 finish)。我
我正在尝试添加此功能: -当点击 Return 按钮时,它会弹出一个退出提示 (AlertDialog with yes or no) 问题 但是它不能正常工作。如果我点击按钮,它会直接退出程序。 这
我想按照下面的方式进行编码.. boolean doubleBackToExitPressedOnce = false; @Override public void onBackPressed() {
我正在制作一个电视 channel 流媒体应用程序,当从 ListView 中点击一个 channel 时,它会转到另一个 Activity ,然后会弹出播放器选择窗口,并在选择播放器后播放视频。现在
我有 3 个 Activity 第一个是登录第二是注册第三个主页 Activity (Bottom_nav) 带有底部导航,有 3 个 fragment A、B、C。 登录 Activity 是启动器
这是我的应用程序的结构: Activity A 是一个 ListViewActivity,带有启动 B Activity 的按钮。 在完成表单后的 B Activity 中,有一个按钮可以启动 C A
我正在编写一个小游戏,在开始屏幕上,有不同的选项,比如开始游戏,开始一个新的 Activity 。但其他按钮,如“法律内容”或“教程”,仅通过 setContentView 显示新的 XML 布局。
我有一个包含 WebView 的 Activity ,我在打开时传递了 URL,像这样: Intent activity = new Intent(getApplicationContext(),Ne
如果我在 Android 1.5 上使用 onBackPressed(),我的应用程序会崩溃。如果在 Android 1.5 设备上运行,是否有可能停用此功能? 那里的代码不是绝对必要的,而是真正的“
基本上我的应用程序有一个登录屏幕,登录后您可以进行许多 Activity 。当我按下主页按钮时,应用程序进入后台,如果用户在一定时间内没有打开它,用户 session 将关闭,您将返回到登录屏幕。现在
我正在尝试通过单击后退按钮关闭我的应用程序。在主屏幕上,后退按钮会将您带到制作人员屏幕。在该积分屏幕上,我想使用后退按钮关闭该应用程序。不幸的是,我正在调用的 onBackPressed() 方法似乎
我有 3 个自定义对话框 (DialogFragment)。所有这些都是不可取消的,因为有必要,用户不能关闭它们。第一个对话开始第二个,第二个开始第三个。现在我想回到上一个对话框,如果我正在使用 ba
实际上我的问题是,当我按下后退按钮时,它会显示一个对话框,同时应用程序完成时没有对键进行任何操作?谁能解决这个问题? @Override public void onBackPressed() {
我是一名优秀的程序员,十分优秀!