我目前正在开发一个可以使用RFID阅读器检测资产的应用程序。我想做的是每次检测到资产时,都会在包含已注册资产列表的回收者视图持有人中标识是否检测到资产的对象(在这种情况下,图像视图?如果检测到资产,则会更改(在这种情况下变成绿色),如果未检测到资产,则不执行任何操作。
我的问题是如何访问回收者视图持有者布局中的图像视图并触发活动更改(使用特定过程)?
在这里,我将为您提供一些我在项目中已经编写的代码。
活动中用于检查是否检测到资产的方法。
public void checkData(){
for(AssetAPI a : assetAPIList){
for(String b : detectedData){
if(a.getAsset_rfid().equals(b)){
Log.i(TAG, "checkData: " + "detected " + a.getName() + b ); // executed everytime a data is detected
showToast("Data detected = " + b);
a.setDetected(1); // a decoy to change the imageview but doesn't work properly, explained in the next procedure
}
else{
Log.i(TAG, "checkData: " + "undetected" );
a.setDetected(0); // a decoy to change the imageview but doesn't work properly, explained in the next procedure
}
}
}
showData(); // set a new recycler view adapter everytime the asset list is changed
}
回收器视图适配器类中的onBindViewHolder方法。
@Override
public void onBindViewHolder(@NonNull final ItemHolder holder, final int position) {
// code
// code
// code
// this is the code to change the imageview to green if the data is detected by checking if the model class has a certain value or not, in this case 1 if detected and 0 by default
// the image view doesn't change properly, only change 1 data even if 3 data is detected
if(listData.get(position).getDetected() == 1){
holder.ivStatus.setBackgroundColor(Color.GREEN);
}
// code
// code
// code
}
我认为这不是正确的方法,我不确定如何正确地做到这一点。如果需要,我将为您提供更多详细信息,感谢您的帮助。