【问题标题】:Hide Button from RecyclerView from outside activity从外部活动中隐藏 RecyclerView 中的按钮
【发布时间】:2020-07-06 13:43:48
【问题描述】:

我创建了一个聊天应用程序,它使用RecyclerView 来创建消息。

所有聊天动作都被称为ChatActivity

在某些情况下,RecyclerView 会创建包含Confirm 按钮的消息。

该按钮有一个listenerRecyclerView 并且一切正常。

我希望一旦用户点击Confirm,按钮的visibility 将设置为GONE

我尝试在我的点击监听器中添加以下内容,但它没有隐藏按钮。

ChatAdapter.OnConfirmClickListener confirmListener = new ChatAdapter.OnConfirmClickListener(){
    @Override
    public void onClick(Button confirmB) {

        Log.d( "ERROR", "error" );

        DocumentReference IsConfirmed = db.collection( "Chats" ).document( chatID );
        IsConfirmed
                .update( "ConfirmedFlag", auth.getUid() )
                .addOnSuccessListener( new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {

                        Button confirm = findViewById( R.id.Confirm );
                        confirm.setVisibility( View.GONE );
                        Log.d( "WHAT", "DocumentSnapshot successfully updated!" );

                    }
                } )
                .addOnFailureListener( new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Log.w( "WHAT", "Error updating document", e );
                    }
                } );


    }
};

它不工作的任何原因?我想也许View有问题?

另外,可能是因为它是在适配器内部创建的,所以无法将visibility 设置为GONE,但我不确定。

谢谢

【问题讨论】:

  • 你又叫 find view by id 了吗??????那么用户如何点击确认消息?

标签: android android-recyclerview visibility android-button


【解决方案1】:

改为:

Button confirm = findViewById( R.id.Confirm );
confirm.setVisibility( View.GONE );

替换为:

confirmB.setVisibility( View.GONE );

希望对你有用

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 1970-01-01
  • 2017-06-02
  • 2020-07-07
  • 1970-01-01
相关资源
最近更新 更多