java - 如何将文本值从 ViewHolder 发送到 ItemTouchHelper 类?

标签 java android android-activity android-recyclerview itemtouchhelper

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

创建ViewHolder(公共(public)类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)类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()方法获取Name。

关于java - 如何将文本值从 ViewHolder 发送到 ItemTouchHelper 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57455461/

相关文章:

java - 用户输入后将输出重定向到文本文件

java - 如何将静态 onScroll 事件值从 CollectionView 返回到调用 ListFragment 或使用类中非静态方法中的值?

java - Cursor$DefaultCursor 无法转换为 java.lang.Boolean?

java - 如何在 Arraylist 中搜索某些字符串

android - 如何在动画期间摆脱这个黑条?

android - 如何从 Activity 调用类

android - Facebook 请求代码

android - 使用 startActivityForResult,如何在子 Activity 中获取 requestCode?

java - 一个只调用其他方法的方法?

Android 中的 javascript 版本