2014-04-06 5 views
0

내 스마트 폰에서 안드로이드 애플리케이션을 시작할 때 시스템은 항상 내 앱을 닫고 "죄송합니다. 애플리케이션이 폐쇄되었습니다."라고 말합니다.안드로이드 앱의 OnClickListener가 실패합니다

이것은 OnClickListener 때문입니다. 그러나 그 이유는 무엇입니까?

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

    Button addTodo = (Button) findViewById((R.id.addTodoButton)); 
    Button cancel = (Button) findViewById(R.id.cancel); 

    cancel.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      System.out.println("SEAS!"); 
     } 
    }); 
} 

스택 추적 : (A ALET 대화 상자에서 사용)

java.lang.RuntimeException: Unable to start activity ComponentInfo{sstodo.app/sstodo.app.MainActivity}: java.lang.NullPointerException 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2266) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316) 
     at android.app.ActivityThread.access$600(ActivityThread.java:150) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:213) 
     at android.app.ActivityThread.main(ActivityThread.java:5225) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
     at sstodo.app.MainActivity.onCreate(MainActivity.java:24) 
     at android.app.Activity.performCreate(Activity.java:5133) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2230) 

버튼 :

<Button 
     android:id="@+id/addTodoButton" 
     android:text="@string/add" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:clickable="true" 
     style="@style/addButtonStyle" 
     /> 

    <Button 
     android:id="@+id/cancel" 
     android:text="@string/cancel" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:clickable="true" 
     style="@style/cancelButtonStyle" 
     /> 

+0

스택 추적 표시. – Houssni

+0

또한 activity_main.xml ...을 표시하고 Button addTodo에 대한 대괄호를 제거하십시오. – Onik

+0

첫 번째 것은 이중 대괄호를 제거합니다. 두 번째 것은 stacktrace를 게시하고 세 번째 것은 println 대신 Log.i/e/v 등을 사용하는 데 익숙해졌습니다. – Setu

답변

0

이 코드를 변경해보십시오 여기

내 코드입니다 이쪽에

cancel.setOnClickListener(new View. OnClickListener() { 
@Override 
public void onClick(View view) 
{ 

System.out.println("SEAS!"); } 
}); 
+0

OnClickListener를 View.OnClickListener로 변경하십시오. – Maverick

관련 문제