我会覆盖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,然后将一个publicsetter应用于变量,并在那个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);
}