2014-06-14 101 views
0

这对我来说变得有些复杂,因为我对片段不是很熟悉,但对于你们中的一些人来说,这可能也很简单,在这里我有这部分代码指的是一个活动,何时我改变了活动将其分解说can not cast from context to ListViewActivity,可以请你帮我解决这个问题:在baseadapter中获取片段的上下文

@Override 
public Filter getFilter() { 
    return ((ListViewActivity)mContext).new ListFilter(); 
} 

明显mContext是上下文reference.i了解,该片段内应该得到上下文中getActivity(),但是从外面多谢?许多。

+0

后ListViewActivity –

回答

1

我会构建类似这样的自定义适配器:

public class CustomBaseAdapter extends BaseAdapter { 
Context context; 
List<RowItem> rowItems; 

public CustomBaseAdapter(Fragment fragment, List<RowItem> items) { 
    this.context = fragment.getActivity(); 
    this.rowItems = items; 
} 
} 

而在你的片段,调用适配器这样的:

CustomBaseAdapter adapter = new CustomBaseAdapter(this, items); 

现在你可以投的情况下在你的适配器ListViewActivity ,假设片段是ListViewActivity的一部分。

希望这会有所帮助!

+0

花花公子,添加构造函数中,我已经做到了 – user3694470

+0

我已经把那里的过滤器,是用于搜索,所以我需要得到上下文连接到适配器 – user3694470

+0

是的,上下文是基本对象。所以,每个活动(以及应用程序)都来自上下文。欲了解更多信息,请阅读:http://stackoverflow.com/questions/6518206/what-is-the-difference-between-activity-and-context – Robin