如何控制 Android 中的可见性,这是​​一个错误吗?

How to control visibility in Android, is this an error?

FeedGroupID != 10时,我设置了holder.group_check.setVisibility(View.GONE),但还是显示

<TextView
    android:id="@+id/group_check"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="15dp"
    android:text=" > "
    android:textSize="14dp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/tv_uploader_group"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="15dp"
    android:text="mumbiker.nikkhil"
    android:textColor="@android:color/black"
    android:textSize="16dp"
    android:textStyle="bold"
    android:visibility="invisible"/>

适配器代码:

if (newFeedModel.getFeedGroupID() != "10") {
    holder.group_check.setVisibility(View.VISIBLE);
    holder.tv_uploader_group.setText(newFeedModel.getFeedGroupName());
} else {
    holder.group_check.setVisibility(View.GONE);
    holder.tv_uploader_group.setVisibility(View.GONE);
}

我收到了这个错误:

Attempt to invoke virtual method 'void
android.widget.TextView.setVisibility(int)' on a null object reference

为什么

error -> holder.group_check.setVisibility(View.VISIBLE);

如果您的 holder 中的视图已初始化并且一切正常而没有崩溃,那么问题出在 if 语句上。

如果 newFeedModel.getFeedGroupID() 返回字符串,则使用 equals() 方法比较它,如下所示:

if(newFeedModel.getFeedGroupID().equals("10")) { 
    //perform operations
} else {}

如果您在 Fragment 中使用,则必须调用此方法 [override fun (onViewCreated)]

  1. 您导入的文件是否与xml文件相同?喜欢 import ...my_layout.viewmy_layout.xml.
  2. onCreateViewHolder 中的布局 ID R.layout.my_layout 是否与 my_layout.xml 相同?

注: my_layout仅举个例子。