Java 如何将文本值从ViewHolder发送到ItemTouchHelper类?
我已经学习Java和Android开发大约一个月了。也许,我不知道一些特征。。。但我一周内找不到任何建议。 我需要将值从ViewHolder中的一个字段(由onBindViewHolder创建)发送到重写的方法OnChildraw(在类中,它扩展了ItemTouchHelper)。但我不明白,我该怎么做。 我想在滑动操作后调用新活动,并将字段“name”的值发送给该活动。我可以有目的地这样做吗?或者你有别的办法 创建ViewHolder(公共类ModelsDataAdapter扩展了RecyclerView.Adapter):Java 如何将文本值从ViewHolder发送到ItemTouchHelper类?,java,android,android-activity,android-recyclerview,itemtouchhelper,Java,Android,Android Activity,Android Recyclerview,Itemtouchhelper,我已经学习Java和Android开发大约一个月了。也许,我不知道一些特征。。。但我一周内找不到任何建议。 我需要将值从ViewHolder中的一个字段(由onBindViewHolder创建)发送到重写的方法OnChildraw(在类中,它扩展了ItemTouchHelper)。但我不明白,我该怎么做。 我想在滑动操作后调用新活动,并将字段“name”的值发送给该活动。我可以有目的地这样做吗?或者你有别的办法 创建ViewHolder(公共类ModelsDataAdapter扩展了Recycl
@覆盖
BindViewHolder上的公共无效(ModelsViewHolder,int位置){
ModelsData model=models.get(位置);
holder.name.setText(model.getName());//200){
viewHolder.itemView.findViewById(R.id.card_前台).setTranslationX(dX/3);
openStatCard();
}else如果(dX==0){
checkActivity=false;
}
}
打开新活动(在SwipeControl.class内):
private void openStatCard(){
如果(!检查活动){
checkActivity=true;
意向意向=新意图(上下文、StatCards.class);
intent.putExtra(“choosingModel”,model);//内onchildraw
方法使用viewHolder.getAdapterPositon()方法获取位置。当需要该值时,只需使用该位置从模型列表中查找名称
编辑
在onchildraw
内部使用viewHolder.itemView.findViewById(R.id.name);
获取文本视图,然后使用getText()
方法获取名称。内部onchildraw
方法使用viewHolder.getadapterposition()方法获取位置。当需要该值时,只需使用该位置从型号列表中查找名称
编辑
内部onchildraw
使用viewHolder.itemView.findviewbyd(R.id.name);
获取文本视图,然后使用getText()
方法获取名称。您可以使用接口您可以使用接口我猜,我理解错了。或者我解释的情况不是很好。因为,我不能这样做。我在BindViewHolder和OnChildraw上的方法位于不同的类中。对于onBindViewHolder-公共类模型,DataAdapter扩展了RecyclerView.Adapterr、 对于OnChildRaw,公共类SwipeControl扩展了ItemTouchHelper。Callback@MikhailShport为了满足您的要求,我对我的答案做了一些修改。请让我知道这是否有帮助。谢谢!我想,我理解错了。或者我解释了我的情况。因为,我不能这样做。我在BindViewHolder和onCh上的方法ildDraw位于不同的类中。对于onBindViewHolder-公共类模型,DataAdapter扩展了RecyclerView.Adapter。对于OnChildRAW-公共类SwipeControl扩展了ItemTouchHelper。Callback@MikhailShport为了满足您的要求,我对我的答案做了一些修改。如果有帮助,请告诉我。谢谢!
@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 --//
}
@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;
}
}
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);
}
}