У меня есть фрагмент, который получает данные из диалогового окна Dialog с помощью onActivityResult (...);Обновление UI от фрагмента
Я пытаюсь обновить интерфейс фрагмента, но runOnUiThread не работает.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ArrayList<Farm> farms = data.getParcelableArrayListExtra("farms_list");
float totalArea = 0;
for(Farm farm : farms) {
if (farm.isSelected()) {
Log.d("farm", farm.getName());
totalArea += farm.getArea();
}
}
final float finalTotalArea = totalArea;
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
area.setText(String.valueOf(finalTotalArea));
}
});
}
Район TextView не обновляется.
Я получаю ссылку на деятельность с помощью метода onAttach().
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (!(context instanceof PageFragmentCallbacks)) {
throw new ClassCastException(
"Activity must implement PageFragmentCallbacks");
}
mCallbacks = (PageFragmentCallbacks) context;
this.activity = (Activity) context;
}
Вы должны использовать 'getActivity.runOnUiThread (новый Runnable() {' –
getActivity() возвращает нуль – Manos
Когда вы говорите, что runOnUiThread() не работает, вы имеете в виду, что он вызывает ошибку или что он ничего не обрабатывает? – Amesys