2011-02-16 3 views
0

그래서 일부 웹보기 작업을 추가하고 있으며 결국이 작업을 더 복잡하게 만들지 만 현재는 기본 작업을 얻으려고합니다. 나는 내장 된 xml을 가지고 있으며 다른 뷰 위에 팽창시키고있다. 그래서 그것의 대화 상자처럼.WebView 로딩 URL

web = (WebView)findViewById(R.id.WebView); 

name = (TextView) findViewById(R.id.name); 
name.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 

     final Dialog dialog = new Dialog(Hydrogen.this); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setContentView(R.layout.web); 
     dialog.setCancelable(true); 

     web.loadUrl("http://en.wikipedia.org/wiki/" + name.getText().toString()); 

     RelativeLayout btn = (RelativeLayout) dialog.findViewById(R.id.close); 
     btn.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       dialog.dismiss(); 
         } 
      });  
     dialog.show(); 
}}); 

기본적으로 WebView에 관한 코드입니다.이 문제는 145 행의 web.loadUrl 행에 있습니다. 뭐가 잘못 됐는지 확신 할 수 없지만 대화 상자를 열려고 할 때마다 충돌이 발생합니다. 감사.

02-16 17:16:08.313: ERROR/AndroidRuntime(8122): FATAL EXCEPTION: main 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122): java.lang.NullPointerException 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at table.periodic.Hydrogen$1.onClick(Hydrogen.java:145) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at android.view.View.performClick(View.java:2408) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at android.view.View$PerformClick.run(View.java:8816) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at android.os.Handler.handleCallback(Handler.java:587) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at android.os.Handler.dispatchMessage(Handler.java:92) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at android.os.Looper.loop(Looper.java:123) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at java.lang.reflect.Method.invoke(Method.java:521) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
02-16 17:16:08.313: ERROR/AndroidRuntime(8122):  at dalvik.system.NativeStart.main(Native Method) 

나는 또한 웹 페이지를로드 할 별도의 프로젝트를 만들려고했습니다. URL을로드하는 WebView 일뿐입니다. 그것은 부분적으로 효과가있었습니다. 그것은 URL을 열었지만 웹 브라우저 대신 브라우저 내부에서 URL을 열었습니다. WebView 브라우저의 이름을 지정했지만 더 많이 시도 할 수 있기 때문일 수 있습니다.

+0

stacktrace 게시! – Jorgesys

+0

스택 추적이 필요합니다. –

+0

@ jorgesys 오류 메시지를 추가했습니다. 너와 닉이 언급 한 것이 겠지. –

답변

1

그래서 나는 그것을 스스로 발견했습니다. 내 대화 코드는 다음과 같습니다.

name = (TextView) findViewById(R.id.name); 
    name.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      final Dialog dialog = new Dialog(Hydrogen.this); 
      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      dialog.setContentView(R.layout.web); 
      dialog.setCancelable(true); 

      eleweb = (WebView) dialog.findViewById(R.id.eleweb); 
      eleweb.loadUrl("http://en.wikipedia.org/wiki/" + name.getText().toString()); 
      eleweb.setWebViewClient(new HelloWebViewClient()); 

      RelativeLayout btn = (RelativeLayout) dialog.findViewById(R.id.close); 
      btn.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        dialog.dismiss(); 
          } 
       });  
      dialog.show(); 
    }}); 

대화 형 형식으로 WebView를 호출하지 못했습니다. 대화 상자 안에 모든 WebView 정보가로드 된 후

eleweb = (WebView) dialog.findViewById(R.id.eleweb); 

이 작동했습니다.

1

변화

btn.setOnClickListener(new View.OnClickListener() { 

중단 점에서

btn.setOnClickListener(new OnClickListener() { 
+0

예. 인터넷 허가 있음 –

+0

차이가 없습니다. 아직도 충돌합니다. –

1

던져 및 당신이 그것을 부착하려고 할 때 웹뷰이 null이 있는지 확인하십시오. 오류가 발생하는 유일한 방법은 웹보기가 null 인 경우입니다. XML 레이아웃 파일에 참조 할 구성 요소 webview가 이름에 반영되어 있는지 확인하십시오.

+0

조금 더 설명 할 수 있습니까? 네가하는 말을 잘 모르겠다. –

+0

코드에 중단 점을 삽입하고 디버그 모드를 실행하고 문제가 발생하기 전에 실행을 중지해야합니다. 그런 다음 디버그 모드에서 충돌 지점에 도달하기 전에 모든 변수가 순간에 무엇인지 봅니다. 사용중인 변수 중 NONE이 null인지 확인하십시오. – JoxTraex

+0

@ JoxTraex 나는 당신이 무슨 뜻인지 잘 모르겠지만 모든 것이 적절하게 명명 된 것을 안다. 어떤 이유로 URL을 열지 않으려 고합니다. 대화 상자가 WebView없이 열리도록 할 수 있지만 일단 WebView를 추가하면 web.loadUrl ("http://en.wikipedia.org/wiki/"+ name.getText(). toString())에서 오류가 발생합니다. –