Передача переменной в 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);
}