自定义对话框已从片段本身调用,当对话框返回肯定时,我想移动到下一个标签,当对话框返回否定时,我想停留在同一个标签上。
片段
中的对话框代码 Dialog_days_selection dds = new Dialog_days_selection(getActivity());
dds.show();
dds.setDialogResult(new Dialog_days_selection.OnMyDialogResult() {
@Override
public void finish(int result) {
currentItem = result;
if (currentItem==2){
((Subscription) getActivity()).getTabLayout().getTabAt(2).select();
}
}
});
用于处理点击事件的对话框代码
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_ok_dialog_address:
mDialogResult.finish(count = 2);
dismiss();
break;
case R.id.btn_cancel_dialog_address:
mDialogResult.finish(count = 1);
dismiss();
break;
default:
break;
}
dismiss();
}
public void setDialogResult(OnMyDialogResult dialogResult) {
mDialogResult = dialogResult;
}
public interface OnMyDialogResult {
void finish(int result);
}
Activiity中的Getter方法
public TabLayout getTabLayout() {
return tabLayout;
}
答案 0 :(得分:1)
首先创建一个getter方法,以便从Activity
TabLayout getTabLayout() {
return tabLayout;
}
您可能已在Fragment
中制作逻辑以显示AlertDialog
。在对话框操作中使用以下代码来更改选项卡。
((YourActivity) getActivity()).getTabLayout().getTabAt(INDEX_OF_THE_NEW_TAB).select();