0

我正在尝试对从数组访问的对象调用方法。出于某种原因,我可以调用的唯一方法是 Object 类的方法。帮助?这是我的代码:

listItem = findViewById(myResourceId);
TextView itemTextView = ((TextView)listItem.findViewById(R.id.list_item_text));
ImageView itemImageView = ((ImageView)listItem.findViewById(R.id.list_item_thumbnail));
ClassMember currentMember = myClassMembers[position];
itemImageView.setImageResource(getResources().getIdentifier(currentMember.getMemberThumbnailId()));

问题是我不能在我的 currentMember 对象上调用 getMemberThumbnailId。

奇怪的是,如果我这样做,我可以让它工作

myClassMembers[position].getThumbnailId();

代替

ClassMember currentMember = myClassMembers[position];
currentMember.getThumbnailId();
4

2 回答 2

0

如果您强制转换 ClassMember currentMember,那么您应该能够访问您想要的方法。

您只需要确保您正在访问的对象数组是正确的类型。如果需要,请先检查一下。

if (currentMember instanceof ClassMember) { 
((ClassMember)currentMember).getMemberThumbnailId();

}

于 2013-09-27T14:45:10.163 回答
0

你是如何声明你的数组的?您是否将其声明为:

ClassMember myClassMembers = new ClassMember[anInt];

还是您将其声明为:

Object myClassMembers = new Object[anInt];

如果您选择了第二个选项,那么您必须将对象转换回它的原始类型 ( ClassMember)。例如

ClassMember currentMember = (ClassMember) myClassMembers[position];

另一个因素可能是您如何将ClassMember实例添加到数组本身。

于 2013-09-27T14:45:20.733 回答