У меня есть видовой пейджер с двумя разными фрагментами.
switch (i) {
case 0:
return LineChartOdoFragment.newInstance(msg, list, text, vehiclelist);
case 1:
return OdoTotalKmsFragment.newInstance(text, list, vehName, false, new OdoTotalKmsFragment.Updateable() {
@Override
public void update(TextView total_kms, TextView vehicle_name, RecyclerView odo_recycler) {
int total = 0;
for (int i = 0; i < list.size(); i++) {
total = total + (Integer.parseInt(list.get(i).getKms()) / 1000);
}
total_kms.setText("" + total);
vehicle_name.setText(vehName);
OdoKmsAdapter adapter = new OdoKmsAdapter(getActivity(), list);
odo_recycler.setLayoutManager(new LinearLayoutManager(getActivity()));
odo_recycler.setAdapter(adapter);
}
});
default:
return LineChartOdoFragment.newInstance(msg, list, text, vehiclelist);
}
Теперь у первого фрагмента есть счетчик, и он обновляется при выборе разных элементов.
Что я смотрюПоскольку значения обновляются в первом фрагменте, второй также должен обновляться.(Я также установил интерфейс во втором.)
Но второй никогда не обновляет и не сохраняет предыдущие значения.
Как мне обновить оба фрагмента сети?
Первый фрагмент вызывает асинхронную задачу, а обработчик обновляет оба фрагмента.
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//myMessage.arg1
//1 - Home page data
if (msg.arg1 == 7) {
odoReadingsModelList = (ArrayList) msg.obj;
no_result_odo.setVisibility(View.GONE);
lineChart.setVisibility(View.VISIBLE);
lineChartOdo = new LineChartOdo(odoReadingsModelList, lineChart, context);
lineChartOdo.createLineChartOdo();
//updating second fragment
OdoTotalKmsFragment.newInstance("", odoReadingsModelList, vehName, true, new OdoTotalKmsFragment.Updateable() {
@Override
public void update(TextView total_kms, TextView vehicle_name, RecyclerView odo_recycler) {
Log.e("LineChart Odo ", "Updating");
int total=0;
for (int i = 0; i < odoReadingsModelList.size(); i++) {
total = total + (Integer.parseInt(odoReadingsModelList.get(i).getKms()) / 1000);
}
total_kms.setText(""+total);
vehicle_name.setText(vehName);
OdoKmsAdapter adapter = new OdoKmsAdapter(getActivity(), odoReadingsModelList);
odo_recycler.setLayoutManager(new LinearLayoutManager(getActivity()));
odo_recycler.setAdapter(adapter);
}
});
} else if (msg.arg1 == 8) {
String res = msg.obj.toString();
lineChart.setVisibility(View.GONE);
no_result_odo.setVisibility(View.VISIBLE);
no_result_odo.setText("" + res);
}
}
};