Webview带有多个指向多个URL的按钮-空指针异常

时间:2018-09-23 08:29:39

标签: android webview

我正在尝试使用片段制作一些按钮,单击这些按钮将在具有不同URL的Webview中打开这些按钮。例如。当我单击第一个按钮时,我会转到“ https://google.com/”,第二个按钮是“ https://fb.com”,依此类推。

对于每种重定向,我都采用了类似的方法(因为我使用意图将其重定向到以前版本的Web浏览器):

private void goToGoogle(View view) {
    this.view = view;
    goToUrl("https://google.com");
}

goToURL(String URL)方法只是为了使用URL作为参数打开浏览器。

现在,系统已要求我实施一个应用内网络视图。我有以下代码:

public void openWebView (String url){
    mWebView.setWebViewClient(new WebViewClient());

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    mWebView.loadUrl(url);
    mWebView.setWebViewClient(new WebViewActivity());

}

我用openWebView(String.valueOf(R.string.googleURL));称呼。

我的onCreateView方法声明如下(例如1个按钮的示例,实际有16个按钮):

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_imp_links, container, false);
    LinearLayout activityLayout = new LinearLayout(getActivity());

    Button1 = view.findViewById(R.id.goToGoogle);
    Button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            goToGoogle(v);
        }
    });

我的应用程序中也有该类来处理WebView:

public class WebViewActivity extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        view.getContext().startActivity(intent);
        return true;
    }
}

我得到java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference

非常感谢您能提供的任何帮助。谢谢。

mWebView的定义:private WebView mWebView = new WebView(getContext());

1 个答案:

答案 0 :(得分:1)

要从资源中获取字符串,请不要使用String.valueOf(R.string.googleURL)

请改为使用Context#getString(R.string.googleURL)