如何将文本值从 ViewHolder 发送到 ItemTouchHelper class?

How can I send text value from ViewHolder to ItemTouchHelper class?

我已经学习 Java 和 Android 开发大约一个月了。也许,我不知道某些功能......但我找不到一个星期的任何建议。 我需要从 ViewHolder(由 onBindViewHolder 创建)中的一个字段发送值到重写的方法 onChildDraw(在 class 中,它扩展了 ItemTouchHelper)。但是我不明白,我怎么能这样做。 我想在滑动操作后调用新的 activity 并将字段 "name" 的值发送到那个 activity。我可以用 Intent 做到这一点吗?或者有其他方法?

正在创建 ViewHolder(public class ModelsDataAdapter 扩展 RecyclerView.Adapter):

@Override
public void onBindViewHolder(ModelsViewHolder holder, int position) {

    ModelsData model = models.get(position);
    holder.name.setText(model.getName()); // <-- I NEED THIS VALUE
    holder.tags.setText(model.getTags());
    holder.keywords.setText(model.getKeywords());
    holder.cost.setText(model.getCost().toString());

    //-- some code --//
}

我的 onChildDraw(public class SwipeControl 扩展 ItemTouchHelper.Callback):

@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {

    //-- some code --//

    int x = 0;
    if (dX < -200){ //
        viewHolder.itemView.findViewById(R.id.card_foreground).setTranslationX(dX / 3);
    } else if (dX > 200){
        viewHolder.itemView.findViewById(R.id.card_foreground).setTranslationX(dX / 3);
        openStatCard();
    } else if (dX == 0){
        checkActivity = false;
    }
}

打开新的 activity(在 SwipeControl.class 内):

private void openStatCard(){
    if (!checkActivity) {
        checkActivity = true;
        Intent intent = new Intent(context, StatCards.class);
        intent.putExtra("choosingModel", model); // <-- PUT "name" IN "model"
        context.startActivity(intent);
    }
}

onChildDraw方法中使用viewHolder.getAdapterPositon()方法获取位置。当您需要该值时,只需使用该位置从 models 列表

中查找 Name

编辑

onChildDraw 中使用 viewHolder.itemView.findViewById(R.id.name); 获取 TextView,然后使用 getText() 方法获取名称。