Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接口onClick Listener无法使用我的onClick方法?_Java_Android_Eclipse_Android Layout - Fatal编程技术网

Java 接口onClick Listener无法使用我的onClick方法?

Java 接口onClick Listener无法使用我的onClick方法?,java,android,eclipse,android-layout,Java,Android,Eclipse,Android Layout,这是我的大问题: 以及守则: package org.madmax.sudoku; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; public class SudokuActivity extends Activity implem

这是我的大问题:

以及守则:

package org.madmax.sudoku;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

public class SudokuActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //Set up Click Listener for all Buttons
        View continueButton = findViewById(R.id.continue_button);
        continueButton.setOnClickListener(this);
        View newButton = findViewById(R.id.new_button);
        newButton.setOnClickListener(this);

        public void onClick(View v) {
            switch(v.getId()) {
            case R.id.about_button:
                Intent i = new Intent(this, About.class);
                startActivity(i);
                break;
            }
        }

    }
}
错误是:

-void is an invalid type for the variable onCLick()

为什么eclipse会给我这个错误?

您需要将onClickonCreate方法中带出来。编程中不允许嵌套方法声明

package org.madmax.sudoku;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

public class SudokuActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //Set up Click Listener for all Buttons
        View continueButton = findViewById(R.id.continue_button);
        continueButton.setOnClickListener(this);
        View newButton = findViewById(R.id.new_button);
        newButton.setOnClickListener(this);
    }

    public void onClick(View v) {
        switch(v.getId()) {
        case R.id.about_button:
            Intent i = new Intent(this, About.class);
            startActivity(i);
            break;
        }
    }
}

您需要从onCreate方法中取出onClick。编程中不允许嵌套方法声明

package org.madmax.sudoku;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

public class SudokuActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //Set up Click Listener for all Buttons
        View continueButton = findViewById(R.id.continue_button);
        continueButton.setOnClickListener(this);
        View newButton = findViewById(R.id.new_button);
        newButton.setOnClickListener(this);
    }

    public void onClick(View v) {
        switch(v.getId()) {
        case R.id.about_button:
            Intent i = new Intent(this, About.class);
            startActivity(i);
            break;
        }
    }
}

在Java中,不能在另一个方法中包含一个方法。将
onClick()
放在
onCreate()
之后,而不是放在它里面。

在Java中,不能将一个方法放在另一个方法里面。将
onClick()
放在
onCreate()之后,在
onCreate
方法中定义了
onClick
方法。

onCreate
方法中定义了
onClick
方法。

onCreate
方法中可以像这样使用onClick

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);



    Button newButton = findViewById(R.id.new_button);
    newButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // your code here

        }
    });
}

您可以在onCreate方法中使用onclick,如下所示

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);



    Button newButton = findViewById(R.id.new_button);
    newButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // your code here

        }
    });
}