2014-04-26 2 views
0

stackoverflow에서이 문제를 읽었지만 문제가 해결되지 않았습니다.setOnClickListener crash

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    ImageView red_view=(ImageView)findViewById(R.id.imageView3); 

    red_view.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast t=Toast.makeText(MainActivity.this,"ROSSO",Toast.LENGTH_SHORT); 
         t.show(); 
     } 

     }); 

:

코드가

내가 클릭 명령에 메시지를 토스트에 대한 가이드를 따라 해요 ..하지만 충돌 (난 그냥 가이드를 복사하고있어 경우에 나는 궁금) 내가 뭘 놓치고 있니? :

04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : 치명적인 예외 :/

이 로그 캣

는 로그 캣입니다 (/ 나는 그것을 견적을 만드는 방법을 몰라) 주 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : 프로세스 : com.example.firstapp, PID : 928 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.example.firstapp/com.example.firstapp.MainActivity} : java.lang.NullPointerException 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.app.ActivityThread.performLaunchActivity (ActivityThread.java) : 2195) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2245) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.app.ActivityThread.access $ 800 (ActivityThread.java) : 135) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1196) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : at android.os.Handler.dispatchMessage (Handler.java:102) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.os.Looper.loop (Looper.java:136) 04- 26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.app.ActivityThread.main (ActivityThread.java:5017) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : java.lang. reflection.Method.invokeNative (네이티브 메소드) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : java.lang.reflect.Method.invoke (Method.java:515) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:779) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : com.android. internal.os.ZygoteInit.main (ZygoteInit.java:595) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : dalvik.system.NativeStart.main (네이티브 메소드) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : 원인 : java.lang.NullPoi nterException 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : com.example.firstapp.MainActivity.onCreate (MainActivity.java:25) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.app.Activity.performCreate (Activity.java:5231) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2159) 04-26 12 : 50 : 36.360 : E/AndroidRuntime (928) : ... 더 많은 04- 26 12 : 50 : 38.660 : I/Process (928) : 보내는 신호. PID : 928 SIG : 9 04-26 12 : 50 : 42.540 : D/AndroidRuntime (980) : VM 종료 04-26 12 : 50 : 42.540 : dalvikvm (980) : threadid = 1 : catch되지 않은 예외로 스레드가 종료 됨 (그룹 = 0xb2a87ba8) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : 치명적인 예외 : 메인 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : 프로세스 : com.example.firstapp, PID : 980 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.example.firstapp/com.example.firstapp.MainActivity} : java.lang.NullPointerException 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2195) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : android. app.ActivityThread.handleLaunchActivity (ActivityThread.java:2245) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : android.app.ActivityThread.access $ 800 (ActivityThread.java:135) 04-26 12:50 : 42.550 : E/AndroidRuntime (980) : android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1196) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : android.os.Handler.dispatchMessage (Handler.java:102) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : android.os.Looper .loop (Looper.java:136) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : android.app.ActivityThread.main (ActivityThread.java:5017) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : java.lang.reflect.Method.invokeNative (네이티브 메소드) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : java.lang.reflect.Method.invoke (Method.java) : 515) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:779) 04-26 12:50:42.550 : E/AndroidRuntime (980) : com.android.internal.os.ZygoteInit.main (ZygoteInit.java:595) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : at dalvik.system.NativeStart (네이티브 메소드) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : 원인 : java.lang.NullPointerException 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : com.example .firstapp.MainActivity.onCreate (MainActivity.java:25) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : android.app.Activity.performCreate (Activity.java:5231) 04-26 12:50 : 42.550 : E/AndroidRuntime (980) : android.app.ActivityThread.performLaunchActivity (Instrumentation.java:1087)에서 04/6 12 : 50 : 42.550 : E/AndroidRuntime (980) : ActivityThread.java:2159) 04-26 12 : 50 : 42.550 : E/AndroidRuntime (980) : ... 11 더 04-26 12 : 50 : 44.760 : I/Process (980) : 신호를 보냅니다. PID : SIG 980 :

9 (I는 클릭 개체 어쨌든 충돌을 만들려고) 이것은 당신의 이미지 뷰에 클릭 이벤트를 설정하는 경우 http://it.tinypic.com/r/t0j5u1/8

+5

가능성 activity_main는 – Raghunandan

+0

와보기가없는 당신이 당신의 로그 캣 조각 및 레이아웃 XML 파일을 게시하시기 바랍니다 수 있습니까? – user3355820

+0

당신의 레이아웃 파일 – goonerDroid

답변

0

public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     button = (Button) findViewById(R.id.buttonToast); 

     button.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 

       Toast.makeText(getApplicationContext(), 
           "Button is clicked", Toast.LENGTH_LONG).show(); 

       } 
     }); 
    } 
0

를 참조 내 레이아웃 파일입니다 레이아웃 xml 파일에서이 속성을

android:clickable="true" 

으로 설정하십시오.

2

imageView3은 조각 레이아웃이며 activity_main 레이아웃이 아닙니다. 따라서 귀하의 활동에 onCreate()을 찾을 수 없습니다.

코드를 onCreateView() 조각으로 이동하고 방금 팽창시킨 fragmen 레이아웃의 findViewById()으로 전화하십시오.

View rootView = inflater.inflate(R.layout.your_fragment_layout); 
ImageView red_view=(ImageView)rootView.findViewById(R.id.imageView3); 
red_view.setOnClickListener(...); 
return rootView;