Java 尝试启动第二个活动后应用程序崩溃

Java 尝试启动第二个活动后应用程序崩溃,java,android,xml,Java,Android,Xml,当我第一次打开应用程序并使用导航时,它工作正常,并将我发送到所需的活动。当我在第二个活动中单击导航中的一个选项卡时,整个应用程序崩溃。以下是相关代码: MainActivity.java public void CMYKClick(View view) { Intent intent = new Intent(this, CMYKActivity.class); startActivity(intent); } public void hexClick(View view) {

当我第一次打开应用程序并使用导航时,它工作正常,并将我发送到所需的活动。当我在第二个活动中单击导航中的一个选项卡时,整个应用程序崩溃。以下是相关代码:

MainActivity.java

public void CMYKClick(View view) {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}

public void hexClick(View view) {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickCMYK() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void HexClickCMYK() {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickHex() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void CMYKClickHex() {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}
public void rgbClickCMYK(View view) {
  Intent intent = new Intent(this, MainActivity.class);
   startActivity(intent);
}

public void hexClickCMYK(View view) {
   Intent intent = new Intent(this, hexActivity.class);
   startActivity(intent);
}
CMYKActivity.java

public void CMYKClick(View view) {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}

public void hexClick(View view) {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickCMYK() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void HexClickCMYK() {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickHex() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void CMYKClickHex() {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}
public void rgbClickCMYK(View view) {
  Intent intent = new Intent(this, MainActivity.class);
   startActivity(intent);
}

public void hexClickCMYK(View view) {
   Intent intent = new Intent(this, hexActivity.class);
   startActivity(intent);
}
java

public void CMYKClick(View view) {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}

public void hexClick(View view) {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickCMYK() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void HexClickCMYK() {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickHex() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void CMYKClickHex() {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}
public void rgbClickCMYK(View view) {
  Intent intent = new Intent(this, MainActivity.class);
   startActivity(intent);
}

public void hexClickCMYK(View view) {
   Intent intent = new Intent(this, hexActivity.class);
   startActivity(intent);
}
最后是日志:

08-11 17:17:35.925    2001-2001/com.example.michael.colorpicker E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.michael.colorpicker, PID: 2001
java.lang.IllegalStateException: Could not find a method CMYKClickHex(View) in the activity class com.example.michael.colorpicker.hexActivity for onClick handler on view class android.support.v7.widget.AppCompatButton with id 'CMYKNavBtn'
        at android.view.View$1.onClick(View.java:4007)
        at android.view.View.performClick(View.java:4780)
        at android.view.View$PerformClick.run(View.java:19866)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5257)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
 Caused by: java.lang.NoSuchMethodException: CMYKClickHex [class android.view.View]
        at java.lang.Class.getMethod(Class.java:664)
        at java.lang.Class.getMethod(Class.java:643)
        at android.view.View$1.onClick(View.java:4000)

logcat的其余部分格式不正确,因此我将其忽略。如果有必要,我可以添加它。

您的方法签名应该是:

public void CMYKClickHex(View view) { ... }
而不是:

public void CMYKClickHex(//Nothing) { ... }

您的方法签名应为:

public void CMYKClickHex(View view) { ... }
而不是:

public void CMYKClickHex(//Nothing) { ... }

方法名称应以小写字母开头

您必须在xml文件中为按钮提供onClick。方法的视图参数和被调用的方法的名称应与您为onClick属性指定的名称相同

大概是这样的:

CMYKActivity.java

public void CMYKClick(View view) {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}

public void hexClick(View view) {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickCMYK() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void HexClickCMYK() {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickHex() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void CMYKClickHex() {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}
public void rgbClickCMYK(View view) {
  Intent intent = new Intent(this, MainActivity.class);
   startActivity(intent);
}

public void hexClickCMYK(View view) {
   Intent intent = new Intent(this, hexActivity.class);
   startActivity(intent);
}

方法名称应以小写字母开头

您必须在xml文件中为按钮提供onClick。方法的视图参数和被调用的方法的名称应与您为onClick属性指定的名称相同

大概是这样的:

CMYKActivity.java

public void CMYKClick(View view) {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}

public void hexClick(View view) {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickCMYK() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void HexClickCMYK() {
    Intent intent = new Intent(this, hexActivity.class);
    startActivity(intent);
}
public void RGBClickHex() {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}

public void CMYKClickHex() {
    Intent intent = new Intent(this, CMYKActivity.class);
    startActivity(intent);
}
public void rgbClickCMYK(View view) {
  Intent intent = new Intent(this, MainActivity.class);
   startActivity(intent);
}

public void hexClickCMYK(View view) {
   Intent intent = new Intent(this, hexActivity.class);
   startActivity(intent);
}

public void CMYKClickHex()
更改为
public void CMYKClickHex(视图)

使用onClick时必须始终发送视图。

公共无效CMYKClickHex()
更改为
公共无效CMYKClickHex(视图视图)

使用onClick时必须始终发送视图。

可能需要一个方法
CMYKClickHex(视图视图)
为什么您的类名小写而方法名大写?可能需要一个方法
CMYKClickHex(视图)
为什么您的类名小写而方法名大写?