天妒小时光 2015-01-27 01:27 采纳率: 11.1%
浏览 2946

做了一个listview的下拉刷新和底部自动加载,但我做完之后项目能运行,但就是始终加载不出来,求教

底下是代码

 package caifu.life.ZHSQ.main;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import caifu.life.ZHSQ.R;
import caifu.life.ZHSQ.sqShouYeListView.AutoListView;
import caifu.life.ZHSQ.sqShouYeListView.AutoListView.OnLoadListener;
import caifu.life.ZHSQ.sqShouYeListView.AutoListView.OnRefreshListener;

public class ShouYeActivity extends Activity implements OnRefreshListener,
        OnLoadListener {
    // 获取listview
    private AutoListView syListView;
    private listViewAdapter adapter;
    private ArrayList<HashMap<String, Object>> item;

    // 传递消息处理刷新数据
    private Handler handler = new Handler(){
        public void handleMessage(Message msg) {
            @SuppressWarnings("unchecked")
            ArrayList<HashMap<String, Object>> result = (ArrayList<HashMap<String, Object>>) msg.obj;
            switch (msg.what) {
            case AutoListView.REFRESH:// 刷新操作
                syListView.onRefreshComplete();
                item.clear();
                item.addAll(result);
                break;
            case AutoListView.LOAD:// 加载
                syListView.onLoadComplete();
                item.addAll(result);
                break;
            }
            syListView.setResultSize(result.size());
            adapter.notifyDataSetChanged();
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sq_message);
        // 获取listview
        syListView = (AutoListView) findViewById(R.id.shouyeListView);
        // 配置适配器
        adapter = new listViewAdapter(this, item);
        // 设置适配
        syListView.setAdapter(adapter);
        // 追加刷新与加载监听
        syListView.setOnRefreshListener(this);
        syListView.setOnLoadListener(this);
        initData();
        // 一个动态数组
        getDate();
    }

    // 定义一个得到数据的方法
    private static ArrayList<HashMap<String, Object>> getDate() {
        ArrayList<HashMap<String, Object>> item = new ArrayList<HashMap<String, Object>>();
        for (int i = 1; i < 4; i++) {
            HashMap<String, Object> map = new HashMap<String, Object>();
            map.put("touXiang", R.drawable.sylvtouxiang);
            map.put("yongHuMing", "第" + i + "用户");
            map.put("neiRong", "第" + i + "内容");
            map.put("sylv_image1", R.drawable.sylvimage1);
            map.put("sylv_image2", R.drawable.sylvimage2);
            map.put("sylv_image3", R.drawable.sylvimage3);
            item.add(map);
        }
        return item;
    }

    private void initData() {
        loadData(AutoListView.REFRESH);
    }

    private void loadData(final int what) {
        // 起线程获取数据
        new Thread(new Runnable() {
            public void run() {
                try {
                    Thread.sleep(700);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                    Message msg = handler.obtainMessage();
                    msg.what = what;
                    msg.obj = getDate();
                    handler.sendMessage(msg);
                }
            }
        }).start();
    }

    public void onLoad() {
        loadData(AutoListView.LOAD);
    }

    public void onRefresh() {
        loadData(AutoListView.REFRESH);
    }

    // 适配器
    private class listViewAdapter extends BaseAdapter {
        private ViewHolder holder;
        private Context context;
        private ArrayList<HashMap<String, Object>> item;

        public listViewAdapter(Context context,
                ArrayList<HashMap<String, Object>> item) {
            this.item = item;
            this.context = context;
        }

        public int getCount() {
            return getDate().size();
        }

        public Object getItem(int position) {
            return null;
        }

        public long getItemId(int position) {
            return 0;
        }

        public View getView(final int position, View convertView,
                ViewGroup parent) {
            if (convertView == null) {
                holder = new ViewHolder();
                convertView = LayoutInflater.from(context).inflate(
                        R.layout.activity_sq_message_item, null);
                // 得到各控件对象
                holder.touXiang = (ImageView) convertView
                        .findViewById(R.id.touXiang);
                holder.yongHuMing = (TextView) convertView
                        .findViewById(R.id.yongHuMing);
                holder.neiRong = (TextView) convertView
                        .findViewById(R.id.neiRong);
                holder.sylv_image1 = (ImageView) convertView
                        .findViewById(R.id.sylv_image1);
                holder.sylv_image2 = (ImageView) convertView
                        .findViewById(R.id.sylv_image2);
                holder.sylv_image3 = (ImageView) convertView
                        .findViewById(R.id.sylv_image3);
                // 绑定viewHolder对象
                convertView.setTag(holder);
            } else {
                // 取出ViewHolder对象
                holder = (ViewHolder) convertView.getTag();
            }
            holder.yongHuMing.setText(getDate().get(position).get("yongHuMing")
                    .toString());
            holder.neiRong.setText(getDate().get(position).get("neiRong")
                    .toString());
            return convertView;
        }

        public final class ViewHolder {
            public ImageView touXiang;
            public TextView yongHuMing;
            public TextView neiRong;
            public ImageView sylv_image1;
            public ImageView sylv_image2;
            public ImageView sylv_image3;
        }

    }
    /** 测试数据
        public List<String> getData() {
            List<String> result = new ArrayList<String>();
            Random random = new Random();
            for (int i = 0; i < 10; i++) {
                long l = random.nextInt(10000);
                result.add("当前条目的ID:" + l);
            }
            return result;
        }*/
}

  • 写回答

2条回答

  • niwanquba 2015-09-17 03:21
    关注

    看看是否有数据,再看看布局是否有问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流