代码之家  ›  专栏  ›  技术社区  ›  Nicolus Jovi

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

  •  0
  • Nicolus Jovi  · 技术社区  · 7 年前

    自定义对话框已从片段本身调用,当对话框返回正数时,我想移动到下一个选项卡,当对话框返回负数时,我想保持在同一选项卡上。

    对话框代码片段

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

    Activity中的Getter方法

    public TabLayout getTabLayout() {
        return tabLayout;
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   devgun    7 年前

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

    TabLayout getTabLayout() {
        return tabLayout;
    }
    

    你可能在你的 Fragment 显示 AlertDialog . 在对话框操作中使用以下代码更改选项卡。

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