XListView 的配置

本文介绍如何使用XListView实现Android应用中的下拉刷新功能。包括XML布局设置、Java代码实现、加载数据及适配器更新等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1  首先要先粘贴3个Java文档  一个箭头图片 2个String文件  3个xml布局   
2  在mainActivity中布局
       <me.maxwin.view.XListView
            android:id="@+id/xListView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:cacheColorHint="#00000000" >
        </me.maxwin.view.XListView>

3  Java代码
    3.1 找控件 mListView = (XListView) view.findViewById(R.id.xListView);
        mListView.setPullLoadEnable(true);
        // mAdapter = new ArrayAdapter<String>(this, R.layout.list_item, items);
        // mListView.setAdapter(mAdapter);
        // mListView.setPullLoadEnable(false);
        // mListView.setPullRefreshEnable(false);
        mListView.setXListViewListener(this);
        // mHandler = new Handler();
        isitData(1);
     3.2 实现implements IXListViewListener接口
       会出现2个方法
      private void onLoad() {
        mListView.stopRefresh();
        mListView.stopLoadMore();
        mListView.setRefreshTime("刚刚");
    }

    @Override
    public void onRefresh() {
        // TODO Auto-generated method stub
        mListView.stopRefresh();
        items.clear();
        isitData(0);
        mListView.setRefreshTime("刚刚");

    }

    @Override
    public void onLoadMore() {
        // TODO Auto-generated method stub
        isitData(++i);
        // 刷新适配器
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
//                adapter.notifyDataSetChanged();
                onLoad();
            }
        }, 2000);
    }
       3.3找数据
       private void isitData(final int pno) {
        new Thread() {
            public void run() {
                String spec = "http://v.juhe.cn/weixin/query?key=c936dc59b0d7716aa27328de11975dc2&pno="+ pno;
                try {
                    URL url = new URL(spec);
                    HttpURLConnection openConnection = (HttpURLConnection) url
                            .openConnection();
                    openConnection.setConnectTimeout(5000);
                    openConnection.setReadTimeout(5000);
                    int responseCode = openConnection.getResponseCode();
                    if (responseCode == 200) {
                        InputStream is = openConnection.getInputStream();
                        int len;
                        ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
                        byte[] by = new byte[1024];
                        while ((len = is.read(by)) != -1) {
                            arrayOutputStream.write(by, 0, len);
                        }
                        String string = arrayOutputStream.toString();
                        System.out.println(string);
                        handler.obtainMessage(STCCUE, string).sendToTarget();
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            };
        }.start();

    }
       3.4handler接收
                      if (msg.what == STCCUE) {
                String string = (String) msg.obj;
                Gson gson = new Gson();
                json = gson.fromJson(string, Sanxiaoxi.class);
                for (int i = 0; i < json.result.list.size(); i++) {
                    items.add(new Sanxiala(json.result.list.get(i).firstImg,
                            json.result.list.get(i).title, json.result.list
                                    .get(i).url));
                }
                if (adapter==null) {
                    adapter = new SanXlistviewAdapter(
                            ThirdFragment.this.getActivity(), items);
                    mListView.setAdapter(adapter);
                }else{
                    adapter.notifyDataSetChanged();
                }

            }
这样  一个下拉刷新就解决了

        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值