PullToRefreshExpandableListView在Fragment中应用

来源:互联网 发布:debian 没有yum 编辑:程序博客网 时间:2024/05/18 03:33

源码地址:https://github.com/chrisbanes/Android-PullToRefresh

这个大家都找得到
现在说说如何在Fragment中实现 PullToRefreshExpandableListView 首先 从源文件中可以找到 在
Android-PullToRefresh/extras/PullToRefreshListFragment/src/com/handmark/pulltorefresh/extras/listfragment/文件夹目录中有 三个 .java 文件
1、讲这个三个文件拷贝到你的项目中,当然你也可以只拷贝 PullToRefreshBaseListFragment.java,你会发现他是一个抽象类,并且没有用public 修饰,你最好添加上(理由待会再说)
2、用你需要 添加 pullToRe(PullToRefreshExpandableListView简称)的Fragment集成这个抽象类,同事实现他的抽象方法,(如果这个Fragment和和抽象类不属于同一目录下,会导致你无法正确导入该类,所以之前让你先加上public修饰)
3、看一下代码。

public class NewCallFragment extends PullToRefreshBaseListFragment {

@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,                         Bundle savedInstanceState) {    // Remove ListView and add PullToRefreshListView in its place    View view = inflater.inflate(R.layout.fragment_new_call, container, false);    mFlag = Constants.FLAG_INTERPHONE;    init(view);    return view;}@Overrideprotected PullToRefreshExpandableListView onCreatePullToRefreshListView(LayoutInflater inflater, Bundle savedInstanceState) {    return new PullToRefreshExpandableListView(getContext());   // 返回你需要镶嵌到PTR中的XListView}private void initView(View view) {    ptrListView = (PullToRefreshExpandableListView) view.findViewById(R.id.ptr_newcall);    //getRefreshableView()得到XListView 以方便实现点击事件    expandableListView = ptrListView.getRefreshableView();       expandAdapter = new CallExpandableAdapter(getContext());    expandableListView.setGroupIndicator(null);    expandableListView.setDivider(null);    expandableListView.setChildDivider(null);    expandableListView.setAdapter(expandAdapter);    expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {        @Override        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {            return false;        }    });    ptrListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ExpandableListView>() {        @Override        public void onRefresh(PullToRefreshBase<ExpandableListView> refreshView) {            new OnFinish().execute();        }    });}class OnFinish extends AsyncTask<Void, Void, Void> {    @Override    protected Void doInBackground(Void... params) {        CmdGroup.getSelfGroupData();        return null;    }    @Override    protected void onPostExecute(Void aVoid) {        super.onPostExecute(aVoid);        ptrListView.onRefreshComplete();    }}

}

0 0
原创粉丝点击