我可以在主要活动课上显示小吃吧但是我不知道为什么我不能在主要活动之外展示呢?
这是主要活动中的正常工作
Snackbar.make(this.findViewById(android.R.id.content), "Test Message", Snackbar.LENGTH_LONG).show();
我第一次把它放在另一个班级时findViewById
出错了,所以我把它改成了这个
Snackbar.make(view.findViewById(android.R.id.content), "Test Message", Snackbar.LENGTH_LONG).show();
现在android工作室显示没有错误但是当我运行应用程序并执行此类时,这是我在logcat中遇到的错误:
FATAL EXCEPTION: main java.lang.NullPointerException
at android.support.design.widget.Snackbar.make(Snackbar.java:136)
at com.domain.app.MyWebViewClient.shouldOverrideUrlLoading(MainActivity.java:85)
at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:274)
at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:376)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
t com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
突出显示此错误(引用Snackbar )(链接 MainActivity.java:85 为蓝色):
com.domain.app.MyWebViewClient.shouldOverrideUrlLoading(MainActivity.java:85)
我也应该添加该课程:
class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String TAG = "Testing: ";
if (url.endsWith(".mp3")||url.endsWith(".zip")) {
Log.i(TAG, "download: " + url);
Snackbar.make(view.findViewById(android.R.id.content), "Test Message", Snackbar.LENGTH_LONG).show();
new DownloadTask().execute(url);
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
}
正如您所看到的,上面的课程是从webview下载特定文件,我将webview的webview客户端设置为此类。错误显示我何时使用此类(下载某事)并且当您看到错误时是指小吃吧
所以我想知道如何在主要活动之外使用小吃吧?
感谢您花时间在这个问题上:)