Передача переменной в RecyclerView

Не получается передать переменную "wn" в RecyclerView, получаемую из MQTT.

public class search extends AppCompatActivity {
    RecyclerView rvCTP;
    ctpAdapter ctpAdapter;
    List<ctpmodel> ctpmodelList = new ArrayList<>();
    public String wn = "100"; // эта переменная отображается

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search);
        rvCTP = findViewById(R.id.rvCtp);
        prepareRecyclerView();
        setData();
        getMqtt();
}

Далее подключение к брокеру MQTT и получение данных

    public void getMqtt() {
        try {
            IMqttToken token = client.connect(options);
            token.setActionCallback(new IMqttActionListener() {
                @Override
                public void onSuccess(IMqttToken asyncActionToken) {
                                           
                    final String topic1 = "xxx";
                    int qos = 2;
                    try {
                        
                        client.subscribe(topic1, 2);
                    } catch (MqttException e) {
                       e.printStackTrace();                               
                    }
    
    client.setCallback(new MqttCallback() {
    
    @Override
    public void messageArrived(String topic, MqttMessage message) throws Exception {
    
                            String a = new String(message.getPayload());
                            JSONObject jsonObj = new JSONObject(a);
                            JSONObject Telemetry = jsonObj.getJSONObject("Telemetry");
                            String Tpod = Telemetry.getString("Tpod");
           
    
                            if (topic.equals(topic1)) {
    
                                wn = Tpod; //**нужно установить эту переменную в recyclerview**
                           }
                        }
                               

Данные для RecyclerView

public void setData(){
 ctpmodelList.add(new ctpmodel("ЦТП", "ленина 77", wn)); //отображается значение, которое задано было в начале
 }
 public void prepareRecyclerView(){
            LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL,false);
            rvCTP.setLayoutManager(linearLayoutManager);
            preAdapter();
        }
    
        public void preAdapter(){
            ctpAdapter = new ctpAdapter(ctpmodelList,this);
            rvCTP.setAdapter(ctpAdapter);
        }

Ответы (0 шт):