我有一个片段,通过意图与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