【问题标题】:how can i change the visibility of a button when the user modyfies the data inside recyclerview?当用户修改 recyclerview 中的数据时,如何更改按钮的可见性?
【发布时间】:2023-03-30 17:48:01
【问题描述】:

我需要根据回收者的视图内容更改按钮的可见性,当它更改时它必须变得可见,否则它必须保持不可见

我已经尝试使用接口、回调和“onactivityresult”来向recyclerview添加一个changelistener,通过该接口我可以从父类访问一个方法,但我无法访问视图,它返回给我nulls

结构如下:

父类(viewpager,带有需要更改其可见性的按钮) 子类(recyclerview) 适配器(调用 API 服务,监听按钮和 Edittext,“我需要从这里修改它”)

【问题讨论】:

    标签: android-fragments button kotlin android-recyclerview visibility


    【解决方案1】:

    如果您想将数据从子类发送到父类,请执行以下步骤。

    您必须创建一个自定义侦听器。

    public interface HideButton{
      void hideButton();
    }
    

    现在在子类或适配器类中创建此接口的实例

    HideButton hideButtonListener;
    

    并在适配器类中创建一个设置器,

    public void setButtonHideListener(HideButton listener){
         this.hideButtonListener = listener;
    }
    

    并通过适配器引用从父类调用此设置器,例如

    adapter.setButtonHideListener(new HideButton(){
        void hideButton(){
        //here you change the visibility of the button in parent class
        }
    });
    

    还有一步。现在,当您在适配器中调用 api 并收到响应时,您调用此代码

    if(hideButtonListener != null){
       hideButtonListener.hideButton();
    }
    

    【讨论】:

    • 现在,只要子类调用它,父类就会监听这个监听器。父母会收到它,您可以执行您的操作。例如隐藏按钮或显示按钮。等等。
    猜你喜欢
    • 1970-01-01
    • 2020-09-11
    • 2019-08-14
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 2016-09-18
    相关资源
    最近更新 更多