gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:24:04 26 4
gpt4 key购买 nike

我是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com