是否可以创建使用butterknife绑定字符串的基础对话框片段

时间:2017-11-01 13:27:29

标签: android butterknife

我正在尝试构建一个对话框,显示从网络中获取的项目列表。因为我知道这不是我需要这种类型对话的唯一时间,所以我想构建一个基本对话框(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);
    }
}

0 个答案:

没有答案