从适配器内部的 Activity 调用方法

Calling method from Activity inside an adapter

大家好,这是一个相当愚蠢的问题,因为我很困惑。我想要做的是从我的适配器中的 activity 调用一个方法(分享到 facebook)。

这是插图:

Activity: postToFacebook(宠物狗); 包含狗列表的列表视图。

适配器: 适配器,我在其中创建自定义视图以获得更好的外观。

问题是我想在 LinearLayout 上设置一个 onLongClickListener 来保存所有狗的信息(这样用户可以保存信息的任何部分)以共享到 facebook。

有办法吗?

非常感谢!

如果我理解了你的问题,那么你就完成了错误的方式

在您的 activity 中,您有一个包含狗信息的 ArrayList(或列表)

类似于

ArrayList<Pets> listDogs;

现在,您应该这样做(myListView 是您的 ListView obj)

myListView.setOnItemLongClickListener(new OnItemLongClickListener() {

        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int pos, long id) {
                postToFacebook(listDogs.get(pos));
            return true;
        }
    }); 

通过这种方式,您可以获得所选元素的位置并从 activity 而不是从适配器调用您的方法。

listDogs.get(pos) 

此行 return 所选行的元素。