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

How can I change the tab with a click response from a custom dialogue box in a tab layout

自定义对话框已从片段本身调用,我想在对话框 return 为正时移动到下一个选项卡,在对话框 return 为负时留在同一选项卡上。

片段中的对话框代码

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

Getter 活动中的方法

public TabLayout getTabLayout() {
    return tabLayout;
}

首先创建一个getter方法来从你的Activity

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

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

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