XListView刷新、加载

来源:互联网 发布:见过的高人 知乎 编辑:程序博客网 时间:2024/04/29 23:17
package com.bawei.test313.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import com.bawei.test313.R;import com.bawei.test313.adapter.MyAdapter;import com.bawei.test313.bean.Info;import com.google.gson.Gson;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.TextHttpResponseHandler;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import cz.msebera.android.httpclient.Header;import xlistview.example.administrator.myxlistviewlibrary.XListView;/** * Created by Administrator on 2017/3/13. */public class TestBActivity extends Activity {    private XListView listViewB;    private ArrayList<Info.Result> parent_list;    private ArrayList<Info.Result> result;    private int index=1;    private ArrayList<Info.Result> list_now;    private MyAdapterB myAdapterB;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.second_main);        listViewB = (XListView) findViewById(R.id.listviewB);        getNetData();        listViewB.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Intent intent=new Intent(TestBActivity.this,DetailActivity.class);                intent.putExtra("city",result.get(position).city);                startActivity(intent);            }        });        listViewB.setPullRefreshEnable(true);        listViewB.setPullLoadEnable(true);        listViewB.setXListViewListener(new XListView.IXListViewListener() {            @Override            public void onRefresh() {                //刷新                listViewB.postDelayed(new Runnable() {                    @Override                    public void run() {                        Log.i("---",index+"");                        list_now.clear();                        index=0;                        int j=index+20;                        for (int i=index;i<j;i++){                            index++;                            Log.i("now---",index+"---");                            list_now.add(result.get(i));                        }                        myAdapterB.notifyDataSetChanged();//刷新适配器                        listViewB.stopRefresh();                    }                },2000);            }            @Override            public void onLoadMore() {                listViewB.postDelayed(new Runnable() {                    @Override                    public void run() {                        Log.i("---",index+"");                        int j=index+20;                        for (int i=index;i<j;i++){                            index++;                            Log.i("now---",index+"---");                            list_now.add(result.get(i));                        }                        myAdapterB.notifyDataSetChanged();//刷新适配器                        listViewB.stopLoadMore();                    }                },2000);            }        });    }    //网络请求数据    void getNetData() {        String url = "http://api.jisuapi.com/weather/city?appkey=b4d06fdd59ed379f";        AsyncHttpClient client = new AsyncHttpClient();        client.get(TestBActivity.this, url, new TextHttpResponseHandler() {            @Override            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {                //失败                Log.i("测试", "失败");            }            @Override            public void onSuccess(int statusCode, Header[] headers, String responseString) {                //成功                // Log.i("测试","成功"+responseString);                String path = Environment.getExternalStorageDirectory()                        .getPath() + "/json.txt";                File file = new File(path);                try {                    file.createNewFile();//创建文件                    FileWriter fileWriter = new FileWriter(file);                    fileWriter.write(responseString);                    fileWriter.flush();//刷新                    fileWriter.close();                } catch (IOException e) {                    e.printStackTrace();                }                getData(responseString);            }        });    }    //解析数据  且分类    void getData(String responseString) {        Gson gson = new Gson();        Info info = gson.fromJson(responseString, Info.class);        result = info.result;        list_now = new ArrayList<Info.Result>();        for (int i=0;i<31;i++){            index++;            list_now.add(result.get(i));//得到30条数据        }        myAdapterB = new MyAdapterB();        listViewB.setAdapter(myAdapterB);    }    class MyAdapterB extends BaseAdapter {        @Override        public int getCount() {            return list_now.size();        }        @Override        public Object getItem(int position) {            return list_now.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            ViewHolder holder;            if (convertView == null) {                convertView = convertView.inflate(TestBActivity.this, R.layout.itemb, null);                holder = new ViewHolder();                holder.itemtext = (TextView) convertView.findViewById(R.id.itemtext);                holder.item_null = (TextView) convertView.findViewById(R.id.text_null);                convertView.setTag(holder);            } else {                holder = (ViewHolder) convertView.getTag();            }            holder.itemtext.setText(list_now.get(position).city);            if (list_now.get(position).parentid.equals("0")){          //    动态设置权重,宽,高;参数: 宽 高  权重                holder.itemtext.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f));                holder.item_null.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f));            }else{                holder.itemtext.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 2.0f));                holder.item_null.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f));            }            return convertView;        }    }    class ViewHolder {        TextView itemtext;        TextView item_null;    }}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 菊花叶子卷了怎么办 菊花的叶子发黄怎么办 卫生间墙外掉皮怎么办 卫生间门边掉皮怎么办 泰迪狗鼻子不黑怎么办 小狗的鼻子干燥怎么办 小狗鼻子很干燥怎么办 电动车被偷车牌怎么办 小白鞋刷完变黄怎么办 机箱没有光驱位怎么办 新生儿脐带有脓怎么办 婴儿漾奶呼呼吐怎么办 初生婴儿黑白颠倒怎么办 新生儿6天拉肚子怎么办 婴儿眼里有泪水怎么办 十个月宝宝拉肚子怎么办 腹泻十几天了怎么办 新生儿37.3度要怎么办 婴儿发烧37.3度怎么办 小孩子太吵了怎么办 一年级孩子学习差怎么办 马克笔涂错了怎么办 孩子说话不流利怎么办 儿童最近不吃饭怎么办 不爱吃饭偏瘦怎么办 一岁半小宝宝不爱吃饭怎么办 家养的小鸡打架怎么办 小鸡关在一起打架怎么办 小孩感冒出汗多怎么办 宝宝感冒出汗了怎么办 出汗多怎么办%3f 孩子睡觉出汗多怎么办 三年级孩子成绩下滑怎么办 幼儿数学不开窍怎么办 孩子一年级学习跟不上怎么办 孩子学习不认真怎么办 孩子平时不细心怎么办? 脖子出现黑圈怎么办 简历留白太多怎么办 excel数字外面加个圈怎么办 电脑输入法数字数不上怎么办