尝试在自定义TextView
布局上添加DialogPreference
时,我尝试在关闭对话框框并将新值保存到首选项时更改此TextView
的文本。
为此,我尝试保存优先级的覆盖onBindView
方法的根视图:
@Override
protected void onBindView(View view) {
super.onBindView(view);
// saving reference to view of preference
parentView = view;
}
,然后使用它在TextView
上更新我的notifyChanged
实例:
@Override
protected void notifyChanged() {
super.notifyChanged();
if (parentView != null) {
// finding target element
View tagView = parentView.findViewWithTag("price_value");
// setting new value to custom TextView
((TextView) tagView).setText(getText());
}
}
但是,直到我将片段切换到其他片段,然后再从活动切换回首选项片段后,文本才会更新。
更改片段的代码:
private void _loadMainFragment(Fragment mainFragment) {
FragmentManager mFragmentManager = getFragmentManager();
FragmentTransaction mFragmentTransaction =
mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.main_container, mainFragment);
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
mFragmentTransaction.commit();
}
谁能给我提示TextView为什么不第一次更新或在何处挖掘?
答案 0 :(得分:0)
必须致电:
tagView.invalidate();
tagView.requestLayout();
在应更新的视图上。