我的代码调用了一个名为" 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; }
答案 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