Java 接口的声明抽象和实现抽象
我正在努力解决“声明的抽象实现的抽象”错误。我正在实现回调接口,以便在单击自定义布局中的按钮时捕获数据,我遇到了这个错误。我在我的活动(TestDialogInterface)中调用了一个覆盖方法,但这似乎无法解决问题。以下是试图解决具体问题时的细节 错误: “类'TestActivity'必须在'InterfaceListener'中声明为抽象或实现抽象方法'onPositiveClick(int)'” 文本活动类:Java 接口的声明抽象和实现抽象,java,android,Java,Android,我正在努力解决“声明的抽象实现的抽象”错误。我正在实现回调接口,以便在单击自定义布局中的按钮时捕获数据,我遇到了这个错误。我在我的活动(TestDialogInterface)中调用了一个覆盖方法,但这似乎无法解决问题。以下是试图解决具体问题时的细节 错误: “类'TestActivity'必须在'InterfaceListener'中声明为抽象或实现抽象方法'onPositiveClick(int)'” 文本活动类: public class TestActivity implements T
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
注释没有为您带来错误吗?你们太棒了。谢谢你的帮助。