2014-07-08 2 views
-1

내 응용 프로그램에는 클릭하면 새 작업이 열리는 확인란이 있습니다. 그러나 지금은 제목에 언급 된 오류가 발생합니다. 나는 내가 그 방법을 가지고 있다고 느낀다. 그러나 내가 그것을 올바르게 사용하는지 잘 모르겠다. 체크 박스가 열리는 활동은 MajorsList입니다. 체크 박스의활동 오류 메서드를 실행할 수 없습니다.

public class MainActivity extends Activity { 

public static double scoreDouble; 
TextView score; 
EditText gpa; 
EditText sat; 
EditText act; 
Button calc; 
CheckBox checkbox; 

public void onCheckBoxClicked(View view){ 
boolean checked = ((CheckBox) checkbox).isChecked(); 

if(checked){ 
    Intent myIntent = new Intent(MainActivity.this, MajorsList.class); 
    MainActivity.this.startActivity(myIntent); 
} 
} 
@Override 

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

gpa = (EditText) findViewById(R.id.gpa); 
sat = (EditText) findViewById(R.id.sat); 
act = (EditText) findViewById(R.id.act); 
checkbox = (CheckBox) findViewById(R.id.checkBox); 

score = (TextView) findViewById(R.id.score); 
calc = (Button) findViewById(R.id.calc); 

calc.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     String gpaString = gpa.getText().toString(); 
     if (gpaString.equals("")) { 
      gpaString = "0"; 
     } 
     double gpaDouble = Double.parseDouble(gpaString); 

     String satString = sat.getText().toString(); 
     if (satString.equals("")) { 
      satString = "0"; 
     } 
     int satInt = Integer.parseInt(satString); 

     String actString = act.getText().toString(); 
     if (actString.equals("")) { 
      actString = "0"; 
     } 
     int actInt = Integer.parseInt(actString); 
     if (actInt/36.0 < satInt/2400.0) { 
      scoreDouble = (0.6 * gpaDouble * 25) 
        + (0.4 * ((double) satInt/2400.0) * 100.0); 
     } else { 
      scoreDouble = (0.6 * gpaDouble * 25) 
        + (0.4 * ((double) actInt/36.0) * 100.0); 
     } 

     Intent myIntent = new Intent(MainActivity.this, CollegeList.class); 
     MainActivity.this.startActivity(myIntent); 

     } 

    } 
); 
} 

} 

로그 캣

07-08 19:35:31.168: E/AndroidRuntime(2995): FATAL EXCEPTION: main 
07-08 19:35:31.168: E/AndroidRuntime(2995): java.lang.IllegalStateException: Could not  execute method of the activity 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.view.View$1.onClick(View.java:3597) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.view.View.performClick(View.java:4202) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.widget.CompoundButton.performClick(CompoundButton.java:100) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.view.View$PerformClick.run(View.java:17340) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.os.Handler.handleCallback(Handler.java:725) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.os.Handler.dispatchMessage(Handler.java:92) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.os.Looper.loop(Looper.java:137) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.app.ActivityThread.main(ActivityThread.java:5039) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at java.lang.reflect.Method.invoke(Method.java:511) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at dalvik.system.NativeStart.main(Native Method) 
07-08 19:35:31.168: E/AndroidRuntime(2995): Caused by: java.lang.reflect.InvocationTargetException 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at java.lang.reflect.Method.invoke(Method.java:511) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  at android.view.View$1.onClick(View.java:3592) 
07-08 19:35:31.168: E/AndroidRuntime(2995):  ... 12 more 

레이아웃

<CheckBox 
    android:id="@+id/checkBox" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/TextView02" 
    android:layout_marginTop="29dp" 
    android:text="Choose Interested Majors" 
    android:onClick="onCheckboxClicked" /> 

내가 새로운 활동을 열 수있는 체크 박스해야 할 것인가?

+1

logcat에 무슨 오류가 있습니까? – Hariharan

+0

@Hariharan logcat을 추가했습니다 – RainbowJeremy

+0

AndroidManifest.xml 파일에 해당 활동을 선언 했습니까? – csmckelvey

답변

0

android : onClick 함수의 이름이 다릅니다. 무슨 일이 일어날 지 안드로이드는 이름이 다르기 때문에 레이아웃에서 호출하는 메소드를 찾지 못한다.

레이아웃과 코드에 똑같이 이름을 지정하면 효과가 있습니다.

관련 문제