Android getIntent 获取旧数据而不是新数据

标签 android android-intent android-recyclerview

我是 android 应用程序的新手。我正在开发一个聊天应用程序。我使用了 RecyclerView 和内部 recyclerview 适配器,我在 Activity 开始时传递一个数据

下面是我的代码

聊天适配器.java //我的ViewHolder

class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

        TextView name;
        ImageView img,status;

        public MyViewHolder(View itemView) {
            super(itemView);
            name= (TextView) itemView.findViewById(R.id.name);
            img= (ImageView) itemView.findViewById(R.id.img);
            status=(ImageView)itemView.findViewById(R.id.status);
            itemView.setOnClickListener(this);
        }

        @Override
        public void onClick(View view) {
            int position=getAdapterPosition();
            UsersList current=data.get(position);
            Intent intent=new Intent(context,ChatRoomActivity.class);
            intent.putExtra("NAME",current.name);
            intent.putExtra("USERNAME",current.username);
            **Log.wtf("CAAAAA","USERNAME "+current.username);**
            context.startActivity(intent);
        }
    }

每当我点击 recycler View 时,它就会传递正确的数据,但是当我按下后退按钮并单击 recyclerview(other) 时,它就会传递错误的数据

我已经通过日志(粗体)进行了检查,显示了正确的数据,但我不知道为什么在 Activity 中收到了错误的数据。 请帮助我。您的回复对我来说非常有值(value)

最佳答案

getAdapterPosition()

返回此 ViewHolder 所表示的项目的 Adapter 位置。

Note

如果有挂起的适配器更新但尚未发生新的布局传递,这可能与 getLayoutPosition() 不同。 在下一次布局遍历之前,RecyclerView 不会处理任何适配器更新。这可能会在用户在屏幕上看到的内容与适配器内容之间产生暂时的不一致。这种不一致并不重要,因为它会小于 16 毫秒,但如果您想使用 ViewHolder 位置访问适配器,则可能会出现问题。有时,您可能需要获取准确的适配器位置以执行某些操作以响应用户事件。在这种情况下,您应该使用此方法来计算 ViewHolder 的 Adapter 位置。

关于Android getIntent 获取旧数据而不是新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41762182/

相关文章:

android - Recyclerview viewholder 可以更改其他适配器位置(不是当前位置)的 View 吗?

android - 在蓝牙打印机中格式化文本

java - 在 fragment 中转换 Activity 以调用父 Activity 中的方法是否安全?

android - 通过 Intents 将 listView 行位置传递给另一个类

android - 为什么 ViewHolder 上的 OnClickListener 不起作用?

java - 尝试将 RecyclerView 与 Parse.com 的 ParseQuery 结合使用以从数据库中提取数据时出现两个编译错误

Android Studio新建项目报错

android - Google Play 游戏初始化时如何隐藏 Android 标题栏?

Android:从 BroadcastReceiver 事件发送 LocalBroadcastManager 的 Intent

android - 如何在电子邮件正文中添加图像