如何通过选项卡布局中自定义对话框的单击响应更改选项卡

时间:2018-01-18 10:12:40

标签: android dialog android-viewpager android-tablayout customdialog

自定义对话框已从片段本身调用,当对话框返回肯定时,我想移动到下一个标签,当对话框返回否定时,我想停留在同一个标​​签上。

片段

中的对话框代码
  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;
}

1 个答案:

答案 0 :(得分:1)

首先创建一个getter方法,以便从Activity

中获取tablayout
TabLayout getTabLayout() {
    return tabLayout;
}

您可能已在Fragment中制作逻辑以显示AlertDialog。在对话框操作中使用以下代码来更改选项卡。

((YourActivity) getActivity()).getTabLayout().getTabAt(INDEX_OF_THE_NEW_TAB).select();