2015-10-07 66 views
0

我有一个自定义适配器类,它扩展了BaseAdapter。此类使用Inflater填充具有不同日期的GridView。在这个类中,我有一个onClick方法。当点击任何日期时,它现在会将用户带到不同的活动。这部分工作正常。setActivityForResult()在自定义适配器类

我想获取一些数据返回到我的自定义适配器类中单击的视图。有没有人为什么我不能在我的onClick中实现startActivityForResult()方法?我将MainActivity中的上下文传递给了自定义适配器类。下图显示了唯一可用的方法。谢谢。

enter image description here

+1

那是因为适配器不能接受结果。这是一项活动的工作。您的活动必须重写onActivityResult方法。 – XxGoliathusxX

回答

1

ContextActivity类是不一样的,虽然他们可以在某些情况下,执行类似的功能。只有Activity类有startActivityForResult方法,所以您应该使用对该方法的引用而不是Context

1

我在片段中使用自定义适配器,为此,我在自定义适配器的构造函数中传入Fragment对象。所以,在你的情况下,传递一个Activity的实例将会起作用。

或者,更清洁的解决方案将是在您的适配器中创建一个接口。像这样 -

public interface FeedItemClickListener { 
     void onMyItemClick(View view); 
} 

并在您使用适配器的活动中实现此接口。覆盖它的功能是这样的 -

@Override 
    public void onMyItemClick(View view) { 
//Do your work here. 
} 

和你很好去。