2013-07-26 3 views
1

내 응용 프로그램에 ImageView가 있고 클릭하면 특정 웹 사이트가 열리도록하고 싶습니다. 나는 모든 것을 올바르게하고 있다고 확신하지만 여전히 효과가 없을 것입니다. ImageView 클릭 즉시 응용 프로그램이 충돌합니다.ImageView에 onClickListener를 추가 할 때 응용 프로그램이 중단됩니다.

ImageView banner = (ImageView)findViewById(R.id.banner); 
banner.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent openUrl = new Intent(); 
      openUrl.setAction(Intent.ACTION_VIEW); 
      openUrl.addCategory(Intent.CATEGORY_BROWSABLE); 
      openUrl.setData(Uri.parse("www.google.com")); 
      startActivity(openUrl); 
     } 
    }); 

로그 캣 파일 : 또한 URL 올바르게 포맷 확인해야

07-26 21:53:49.481: E/AndroidRuntime(25479): FATAL EXCEPTION: main 
07-26 21:53:49.481: E/AndroidRuntime(25479): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=www.google.com } 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.app.Activity.startActivityForResult(Activity.java:3370) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.app.Activity.startActivityForResult(Activity.java:3331) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.app.Activity.startActivity(Activity.java:3566) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.app.Activity.startActivity(Activity.java:3534) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at si.dvanadva.evanturist.CheckpointsActivity$2.onClick(CheckpointsActivity.java:323) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.view.View.performClick(View.java:4204) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.view.View$PerformClick.run(View.java:17355) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.os.Handler.handleCallback(Handler.java:725) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.os.Looper.loop(Looper.java:137) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at android.app.ActivityThread.main(ActivityThread.java:5041) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at java.lang.reflect.Method.invokeNative(Native Method) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at java.lang.reflect.Method.invoke(Method.java:511) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
07-26 21:53:49.481: E/AndroidRuntime(25479): at dalvik.system.NativeStart.main(Native Method) 

답변

1

교환이

openUrl.setData(Uri.parse("www.google.com")); 

openUrl.setData(Uri.parse("http://www.google.com")); 

더 많은 정보

http://developer.android.com/reference/android/content/Intent.html

@ 편집하여 :

String url = "www.google.com"; 
    if (!url.startsWith("http://") && !url.startsWith("https://")) 
    { 
     url = "http://" + url; 
    } 
    else 
    { 
    Intent openUrl = new Intent(); 
    openUrl.setAction(Intent.ACTION_VIEW); 
    openUrl.addCategory(Intent.CATEGORY_BROWSABLE); 
    openUrl.setData(Uri.parse(url));  
    startActivity(openUrl); 
    } 
+0

예, 이것이 문제였습니다! 고맙습니다! – Guy

+0

@Matthew는 자신의 URL 앞에 'http' 또는'https '가 있는지 확인합니다. – Raghunandan

1

(접두어는 중요하다) :

http://www.google.com 

하지

www.google.com 

확인 OU t this post을 예로들 수 있습니다.

+1

그게 작동하지 않습니다, 어쨌든 고맙습니다. – Guy

+0

'openUrl.addCategory (Intent.CATEGORY_BROWSABLE); '는 충돌과 아무 관련이 없습니다. http://developer.android.com/reference/android/content/Intent.html. 아래로 스크롤하여'CATEGORY_BROWSABLE'을 확인하십시오. – Raghunandan

0

브라우저 창에서 웹 사이트를여시겠습니까? 그렇다면 CATEGORY를 제거하십시오. 나는 그것이 WebViews를위한 것이라고 확신한다.

관련 문제