我有一個片段,通過意圖與onActivityResult(...)從DialogFragment獲取數據;從片段更新UI
我想更新片段的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()返回null – Manos
當你說runOnUiThread()不起作用,你的意思是它導致錯誤或它不處理任何東西? – Amesys