我会覆盖onResume()
你Fragment
并在那里抓取UiSettings
实例并将值应用到函数中,例如
button.setVisibility(uiSettings.showButton ? View.VISIBLE : View.GONE);
所以总的来说,你会添加到你的代码中
@Override
public void onResume() {
super.onResume();
button.setVisibility(uiSettings.showButton ? View.VISIBLE : View.GONE);
}
UiSettings
在你的类之外创建一个类Fragment
,然后将一个public
setter应用于变量,并在那个setter中通过你创建的某个接口(本质上是数据绑定showButton
)更改按钮的可见性,这也可能是一个好主意Fragment's
他们俩)。
界面可能看起来像
public interface Binding {
dataChanged();
}
然后UiSettings
public class UiSettings {
public Binding binder;
private boolean showButton;
public void setShowButton(boolean showButton) {
this.showButton = showButton;
if (binder != null) {
binder.dataChanged();
}
}
public boolean getShowButton() {
return showButton;
}
}
然后您的片段将implement
Binding
添加到其中
@Override
public void dataChanged() {
button.setVisibility(uiSettings.getShowButton() ? View.VISIBLE : View.GONE);
}