我正在尝试构建一个对话框,显示从网络中获取的项目列表。因为我知道这不是我需要这种类型对话的唯一时间,所以我想构建一个基本对话框(NetworkDialog)来处理尝试从网络获取数据时可能发生的不同错误(即.noServerResponse,failedToConnectToHost等)。
为此,我希望能够使用Butterknife来绑定用于不同错误消息的字符串资源,但我不确定这是否可行。
这样的事情会起作用吗?
public abstract class NetworkDialog extends BaseDialog implements NetworkDialogView {
@BindString(R.string.global_network_error_internal_server_error)
String mInternalServerErrorString;
@BindString(R.string.global_network_error_no_server_response)
String mNoServerResponseString;
@BindString(R.string.global_network_error_no_network)
String mNoNetworkString;
@BindString(R.string.global_network_error_failed_to_connect_to_host)
String mFailedToConnectToHost;
private Unbinder mUnbinder;
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
Timber.d("onCreateDialog()");
Timber.d("Binding view using ButterKnife.");
mUnbinder = ButterKnife.bind(this, getView());
Timber.d("View bound");
return super.onCreateDialog(savedInstanceState);
}
@Override
public void onDestroyView() {
Timber.d("onDestroyView() called.");
super.onDestroyView();
mUnbinder.unbind();
}
@Override
public void setNoNetworkError() {
showError(mNoNetworkString);
}
@Override
public void setFailedToConnectToHostError() {
showError(mFailedToConnectToHost);
}
@Override
public void setNoServerResonseError() {
showError(mNoServerResponseString);
}
@Override
public void setInternalServerError() {
showError(mInternalServerErrorString);
}
}