java - Android - RecyclerView 更改项目

标签 java android android-recyclerview

我在 RecyclerView 中有一个移动联系人列表,我还有一个包含注册手机号码的在线数据库,我创建了一个 Web 服务来检查该号码是否已注册以及它是否正常工作。
我想要做的是右侧的项目中有一个邀请文本,我想让它对未注册用户可见,而注册用户对他们来说将不可见,这是我的 onBindViewHolder 下面

我现在得到的是邀请文本不断显示和消失,然后对所有人保持可见

@Override
    public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
        Log.d(TAG, "Element " + position + " set.");

        // Get element from your dataset at this position and replace the contents of the view
        // with that element
        viewHolder.getTextView().setText(mDataSet[position]);
        viewHolder.getTextView2().setText(mDataSet2[position]);
        viewHolder.getImageView().setImageResource(mDataSet3[position]);

        Phone phone=new Phone();
        phone.phone=mDataSet2[position];
        WebService.getInstance().getApi().checkNumber(phone).enqueue(new Callback<MainResponse>() {
            @Override
            public void onResponse(Call<MainResponse> call, Response<MainResponse> response) {
                if (response.body().status == 1){
                    viewHolder.getTextViewInvite().setVisibility(View.GONE);
                }else {
                    viewHolder.getTextViewInvite().setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void onFailure(Call<MainResponse> call, Throwable t) {
                viewHolder.getTextViewInvite().setVisibility(View.VISIBLE);
            }
        });

    }

最佳答案

当您在 recyclerview 中滚动时,您正在调用 api,这肯定需要一些时间来响应,因此您的 View 分别显示和隐藏。

缺点:

滚动时不必要的网络调用。

理想情况下,您应该在加载联系人时而不是在滚动时预取所有用户的状态。如果您喜欢这种方法,请接受并实现。

关于java - Android - RecyclerView 更改项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44522217/

相关文章:

java - java中动态实例化对象

java - 使用 Java Spring JPA 和 CRUD 更新数据库记录

android - Flutter:自定义字体系列不被应用

java - 更改操作栏图标

android - RecyclerView notifyItemRangeInserted 不保持滚动位置

java - 从 ehCache 卸载已编译的 XSLT (xsltExecutable)

java - 如何在 Spring Boot 中正确指定数据库模式?

android 使用 ContactsContract 读取联系人详细信息

android - 带动画的 RecyclerView 和 DiffUtil 崩溃并出现 IndexOutOfBoundsException : Inconsistency detected

android - 将recyclerview的焦点更改为某个项目位置?