【发布时间】:2014-06-12 05:18:09
【问题描述】:
我试图让用户在选择新选项卡之前确认(通过 AlertDialog)他们想要切换选项卡。我正在使用 ActionBarSherlock 库(因为我想在 Android 2.3 及更高版本中编译)在我的 Android 布局中创建操作选项卡,并且可以看到何时选择了新选项卡,以及何时取消选择。目前,我用它来知道何时要求用户确认开关,如下所示:
ActionBar ab;
String newTab;
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
ab = getSupportActionBar();
newTab=tab.getText().toString();
new AlertDialog.Builder(this)
.setTitle("Continue?")
.setMessage("Are you sure you want to continue?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// User confirms that they want to switch tabs
if (newTab.equals("tab 1")) {
setContentView(R.layout.tab1);
} else if (newTab.equals("tab 2")) {
setContentView(R.layout.tab2);
}
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// DONT switch tabs
ab.selectTab(prevTab);
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
// update the previous tab
prevTab = ab.getSelectedTab();
}
但是,如果用户想选择“否”(不要切换标签),库似乎已经选择了它?是否可以控制在库选择此新选项卡之前发生的情况,然后在实际切换之前要求用户确认?
谢谢!
【问题讨论】:
标签: java android tabs actionbarsherlock android-alertdialog