我正在尝试使用片段制作一些按钮,单击这些按钮将在具有不同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());
答案 0 :(得分:1)
要从资源中获取字符串,请不要使用String.valueOf(R.string.googleURL)
。