当我只有 Context 作为参数时,来自 class 的带有静态方法的 Snackbar。

Snackbar from class with static methods when I only have Context as parameter.

每当我检查网络连接但在使用静态方法的 NetworkClient class 中找不到时,我都会尝试创建一个小吃店。这些方法中的每一个都只从调用 activity 传递一个 Context 参数。理想情况下,我想在 class 中创建一个私有方法,如下所示:

private void showNetworkErrorSnackbar(Context mContext) {
    Snackbar.make( whatgoeshere?, mContext.getString(R.string.network_error_message),  Snackbar.LENGTH_LONG).show();
}

可以从任何 NetworkClient 方法调用。但是,我无法弄清楚如何获取要放入第一个参数的视图。更改方法的参数以包含视图太复杂了,因为这些方法已经在每个 activity.

中被调用

当然,在输入之后我能够准确地推理出要搜索的内容。仅从上下文获取视图的答案在这里:,它能够解决我的问题。希望这可以帮助遇到类似问题的其他人。

您可以创建一个虚拟布局,然后将其用作显示 Snackbar 的参数,如下所示

RelativeLayout relativeLayout;
Snackbar snackbar = Snackbar
                .make(relativeLayout, "Your message here!", Snackbar.LENGTH_LONG);
        snackbar.show();