为什么接口方法无法解析?

时间:2015-08-06 19:38:40

标签: java android

我的代码调用了一个名为" ListDescribable"的接口。用于自定义ArrayAdapter。

接口声明如下:

public interface ListDescribable {
    String getCalledName();
    String getDescriptor();
    boolean isActive();
    void toggle();

}

我在这里调用接口方法:

 listEntry = new DescribableEntry();
 listEntry.broadcastSwitch =(Switch) row.findViewById(R.id.list_entry_switch);

...

ListDescribable entry = data[position];
listEntry.broadcastSwitch.setChecked(entry.isActive());

我尝试调用isActive(),但是ide告诉我isActive无法解析。为什么会这样?我该如何解决?

编辑:

DescribableEntry代码:

static class DescribableEntry {
    Switch broadcastSwitch;
    TextView itemName;
    TextView itemDescriptor;
    ImageView blueStatus;
}

编辑: DescribableEntry不是ListDescribable。在任何情况下都不会在DescribableEntry对象上调用ListDescribable方法。

根据请求,data []是ListDescribable对象的数组,在对象初始化中声明为字段变量。项目中使用的类用于中断器,它当前是占位符:

public boolean isActive() { return false; }

2 个答案:

答案 0 :(得分:1)

您的"数据" table应该实现" ListDescribable"

如果"数据[位置]"是" DescribableEntry",so" DescribableEntry"应该实现ListDescribable",以及他的方法。

答案 1 :(得分:1)

你需要让你的类实现接口,否则两者将完全分开。

static class DescribableEntry implements ListDescribable
{
... implement all interface methods here ...
}

您可以在此处详细了解界面:https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html