gpt4 book ai didi

java - 当用户触摸屏幕上的任意位置时,如何一一填充回收器 View ?

转载 作者:行者123 更新时间:2023-12-02 04:50:38 25 4
gpt4 key购买 nike

当用户点击屏幕上的任意位置时,我想填充 recyclerview 项目。例如,在第一次触摸时加载第一个项目,在第二次触摸时加载第二个项目,在第三次触摸时加载第三个项目,依此类推。我不知道如何实现这个。

这是我的适配器代码

适配器

public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder>{

List<MessageModel> list;
Context context;

public MessageAdapter(List<MessageModel> list, Context context) {
this.list = list;
this.context = context;
}

@NonNull
@Override
public MessageAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context)
.inflate(R.layout.chatbubble, viewGroup, false);
ViewHolder myHolder = new ViewHolder(view);

return myHolder;
}

@Override
public void onBindViewHolder(@NonNull MessageAdapter.ViewHolder viewHolder, int i) {
MessageModel model = list.get(i);
if(model.getSender().equals("left")){
viewHolder.left.setText(model.getText());
viewHolder.right.setVisibility(View.GONE);
viewHolder.middle.setVisibility(View.GONE);
} else if(model.getSender().equals("right")){
viewHolder.right.setText(model.getText());
viewHolder.middle.setVisibility(View.GONE);
viewHolder.left.setVisibility(View.GONE);
} else {
viewHolder.middle.setText(model.getText());
viewHolder.left.setVisibility(View.GONE);
viewHolder.right.setVisibility(View.GONE);
}
}

@Override
public int getItemCount() {
return list.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {

TextView left, right, middle;

public ViewHolder(@NonNull View itemView) {
super(itemView);

left = itemView.findViewById(R.id.message_incoming);
right = itemView.findViewById(R.id.message_outgoing);
middle = itemView.findViewById(R.id.message_middle);

}
}
}

最佳答案

在保存 RecyclerViewActivity 中,执行以下代码更改。

  1. 添加 onClickListeneronTouchListener(无论您喜欢哪个 RecyclerView)。

    recyclerView.setOnClickListener()recyclerView.setOnTouchListener()

  2. 添加代码以将项目添加到上述事件监听器中的 RecyclerView 中。

    yourList.add("您的元素");
    适配器.notifyItemInserted(intpositionAtWhichItemWasInserted);

    适配器.notifyDatasetChanged();

    //由于某种原因,我无法格式化上面的代码 fragment 。

  3. 确保在将项目添加到 RecyclerView 列表后调用 notifyItemInserted()notifyDatasetChanged()

关于java - 当用户触摸屏幕上的任意位置时,如何一一填充回收器 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56445734/

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