在baseadapter中获取片段的上下文

时间:2014-06-14 17:42:10

标签: android

这对我来说已经变得有些复杂了,因为我对片段不太熟悉,但对于你们中的一些人来说也可能很简单,这里我将这部分代码引用到一个活动,当我将活动改为片段时它说can not cast from context to ListViewActivity,请你帮我解决一下:

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

显然mContext是一个上下文参考。我明白片段内部应该得到getActivity()的上下文,但是来自外部?非常感谢。

1 个答案:

答案 0 :(得分: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的一部分。

希望这有帮助!