Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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 接口的声明抽象和实现抽象_Java_Android - Fatal编程技术网

Java 接口的声明抽象和实现抽象

Java 接口的声明抽象和实现抽象,java,android,Java,Android,我正在努力解决“声明的抽象实现的抽象”错误。我正在实现回调接口,以便在单击自定义布局中的按钮时捕获数据,我遇到了这个错误。我在我的活动(TestDialogInterface)中调用了一个覆盖方法,但这似乎无法解决问题。以下是试图解决具体问题时的细节 错误: “类'TestActivity'必须在'InterfaceListener'中声明为抽象或实现抽象方法'onPositiveClick(int)'” 文本活动类: public class TestActivity implements T

我正在努力解决“声明的抽象实现的抽象”错误。我正在实现回调接口,以便在单击自定义布局中的按钮时捕获数据,我遇到了这个错误。我在我的活动(TestDialogInterface)中调用了一个覆盖方法,但这似乎无法解决问题。以下是试图解决具体问题时的细节

错误: “类'TestActivity'必须在'InterfaceListener'中声明为抽象或实现抽象方法'onPositiveClick(int)'”

文本活动类:

public class TestActivity implements TestDialogInterface.InterfaceListener {
    @Override
    public void onClickPositive(int someNumber){
    //do something
    }
    ...
}
TestDialoginerFace.java:

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;

public class TestDialogInterface extends DialogFragment {

    public interface InterfaceListener {
        public void onPositiveClick(int someNumber);
    }

    InterfaceListener interfaceListener;

    //check to see if interface is utilized in main activity event
    @Override
    public void onAttach(Context context){
        super.onAttach(context);
        try {
            interfaceListener = (InterfaceListener) context;
        } catch (ClassCastException e){
            throw new ClassCastException(context.toString() + " must implement InterfaceListner");
        }
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the Builder class for convenient dialog construction
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Select Date")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        interfaceListener.onPositiveClick(1);
                    }
                })
                .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        // User cancelled the dialog
                    }
                });
        return builder.create();
    }
}

打字错误:
onClickPositive
!=
onPositiveClick
这是因为您实现了TestDialogInterface.InterfaceListener接口,当您实现接口时,您必须实现它的所有方法检查拼写。在界面中,您已经声明了
onPositiveClick
,但在实现时,您并没有提供此方法的实现,而是使用了另一个名称的方法:
onClickPositive
@Override
注释没有为您带来错误吗?你们太棒了。谢谢你的帮助。