내 안드로이드 응용 프로그램에서 Sherlock 측면 탐색 조각을 사용하고 있습니다. 그러나, 나는 진행률 표시 줄과 함께 webviews을 모두 포함 6 조각을 사용하고 있습니다. 측면 탐색에있는 링크 중 하나를 선택하고 진행 표시 줄이 아직 완료하지 않은 경우, 그것은 나에게에서 널 포인터 예외를 제공한다는null 포인터 내에서 onProgressChanged를 사용하는 중 예외
@SuppressLint("SetJavaScriptEnabled")
public class Fragment1 extends SherlockFragment {
private WebView mWebview;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
setHasOptionsMenu(true);
View rootView = inflater.inflate(R.layout.fragment1, container, false);
mWebview = (WebView) rootView.findViewById(R.id.webView1);
mWebview.setInitialScale(1);
mWebview.getSettings().setJavaScriptEnabled(true);
mWebview.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
//Make the bar disappear after URL is loaded, and changes string to Loading...
getActivity().setTitle("Loading...");
getActivity().setProgress(progress * 100); //Make the bar disappear after URL is loaded
// Return the app name after finish loading
if(progress == 100)
getActivity().setTitle(R.string.Fragment1);
}
});
mWebview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
}
});
mWebview.loadUrl("http://www.LINK");
WebSettings zoomenable = mWebview.getSettings();
zoomenable.setBuiltInZoomControls(true);
WebSettings wideviewenable = mWebview.getSettings();
wideviewenable.setUseWideViewPort(true);
mWebview.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
mWebview.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if(mWebview.canGoBack())
{
mWebview.goBack();
return true;
}
return false;
}
});
return rootView;
}
public class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.main_activity_actions, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
mWebview.reload();
return true;
default:return super.onOptionsItemSelected(item);
}
}
}
내가 직면하고 문제 :
여기에 조각 중 하나입니다 onProgressChanged 메서드입니다.
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
this.getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
여기 로그 고양이 오류입니다 : 사전에
05-23 18:54:20.687: E/AndroidRuntime(20112): FATAL EXCEPTION: main
05-23 18:54:20.687: E/AndroidRuntime(20112): java.lang.NullPointerException
05-23 18:54:20.687: E/AndroidRuntime(20112): at petra.app.Fragment1$1.onProgressChanged(Fragment1.java:45)
05-23 18:54:20.687: E/AndroidRuntime(20112): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:533)
05-23 18:54:20.687: E/AndroidRuntime(20112): at android.os.Handler.dispatchMessage(Handler.java:99)
05-23 18:54:20.687: E/AndroidRuntime(20112): at android.os.Looper.loop(Looper.java:137)
05-23 18:54:20.687: E/AndroidRuntime(20112): at android.app.ActivityThread.main(ActivityThread.java:5297)
05-23 18:54:20.687: E/AndroidRuntime(20112): at java.lang.reflect.Method.invokeNative(Native Method)
05-23 18:54:20.687: E/AndroidRuntime(20112): at java.lang.reflect.Method.invoke(Method.java:511)
05-23 18:54:20.687: E/AndroidRuntime(20112): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
05-23 18:54:20.687: E/AndroidRuntime(20112): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
05-23 18:54:20.687: E/AndroidRuntime(20112): at dalvik.system.NativeStart.main(Native Method)
감사
는 주요 활동에서 내가 진행률 표시 줄을 사용하려면 코드의 두 라인을 사용했다.
로그 캣 – matiash
@matiash에서의 예외 스택 추적을 게시하시기 바랍니다, 나는 로그 캣 오류를 게시를 확인하시기 바랍니다. – Izzo32
getActivity가 null을 반환하는지 확인 했습니까? – dwbrito