Как получить доступ / изменить объект в держателе представления переработчика после запуска чего-либо? - PullRequest
0 голосов
/ 10 июля 2019

В настоящее время я разрабатываю приложение, которое может обнаружить актив с помощью считывателя 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
}

Я не думаю, что это правильный путь, и я не уверен, как правильно сделать это. Я предоставлю вам более подробную информацию, если потребуется, и любая помощь будет оценена, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...