佣兵笔记

来源:互联网 发布:淘宝日立3t硬盘翻新 编辑:程序博客网 时间:2024/06/09 21:08

ListView的动态刷新

2015年11月24号,又是一次石家庄下雪天,这也是我在石家庄待的第四个年头。上次下大雪的时候还是三年前(我大一),多么的无忧无虑,现在的境地是已在一个公司实习快一个月了。搞的是android开发,说实话我在实习之前只有学习了差不多一个月的android,而且一个月里面还有半个月在看java语法,可以想象在公司里实习有多么困难了吧。。。公司给的第一个任务(也是目前唯一的一个任务)就是让我写一个P2P(完全体就是People to people,通俗讲就是人对人)的UDP传输工具包括聊天跟传输文件,真是是困难重重啊,几乎就是学一点做一点做到现在都没有完成,可以说一个月之前我唯一知道的关于android语法的就是按钮的监听器,按下就发生一个事件挺好玩的,比单片机的按钮好用0.0。关于我的这个项目以后再慢慢写,现在先说说今天遇到的一个难题吧:ListView的动态刷新今天可算是纠结死我了,倒不是百度上没有,而是太它妹子的多了,而且大部分都是一样,集合满天飞,不知道作为一个java没看全的新手看你们的代码有多么多么的费劲吗,而且几乎没看到几个写注释的,擦。。。我的目的就是要用一个ListView来显示在同一个局域网里的IP(还是那个操蛋的基于UDP的P2P传输)当然局域网里的IP不是固定的,可能你下去了,我又上来了,肯定得动态刷着了。

直接来代码:

    /*************************************************/    /*                      定义区                    */    /*************************************************/    /* 控件的定义 */    Button bn_change;      //定义一个按钮,用来选择刷新    ListView listPartner;   //listview在此    /* ListView有关定义 */    ArrayAdapter<String> Adapter;            ArrayList<String> arrlist = new ArrayList<String>();    /* 数据区定义 */    /* 定义一个数组用作为ListView item的内容缓冲区 */    String[] Client_IP = new String[]{"202.206.64.41",                        "192.168.1.102""192.168.1.100"};    /****************************************************                        系统初始化        1、对各个控件初始化                  ****************************************************/    class Init{        Init(){        /* 改变按钮的初始化 */        bn_change = (Button)findViewById(R.id.button2);        bn_change.setOnClickListener(new        View.OnClickListener() {            @Override            public void onClick(View v) {                /* 单击改变listview显示的内容 */                ChangeIP();                            }        });    /* 对LIstView的初始化 */     listPartner = (ListView)findViewById(R.id.listView);     arrlist .add("123");     arrlist .add("234");   //随便向arr里赋值,到时候进入界面listview显示就是此时的赋值,也可以不写        /* 对list各项设置单击事件监听器,切记是单击事件,还是选择        这两个监听器是不一样滴(下午在这儿都让我纠结半天) */     listPartner.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                              }        });        }        /* 写一个方法用来改变listview里item各项 */    public void ChangeIP(){        arrlist .clear();   //首先将显示的清除        for(int i = 0;i < Client_IP.length;i++){            arrlist .add(Client_IP[i]);   //要改变的值             Adapter.notifyDataSetChanged();                        //之后想要实现改变刷新IP的功能,只需有一个方法来改变Client_IP数组里的值,之后调用此方法即可        }    }@Overrideproteceted void onCreat(Bundle savedInstanceState){    super.onCreate(saveInstanceStace);    setContentView(R.layout.activity_main_activity_server);/* 初始化各个控件 */new Init();/* 对listview的处理 */        Adapter = new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,arrlist);        listPartner.setAdapter(Adapter);}    }
瞬间轻松了很多莫有,实际上对与上述方法的动态刷新实际上只有三步(当然对listview的初始化赞不包括其中):1、 ArrayList<String> arrlist 这个数组是与listview的显示绑定的,对这个数组的操作也就是对listview显示内容的操作。同时刷新前首先要对这个数组clear2、clear完之后就应该对其赋值,用add方法3、赋值完之后就通知UI刷新listview就可以了用notifyDataSetChanged();,切记这步,如果不对listview刷新,那就呵呵了0.0     当然此处还是有很多需要学习的地儿,比如对于listview还是有很多学习,同时java语法也得看啊,最齐码集合该看看了,妹子的真费劲,还有Adapter也得查查是啥意思,要不总感觉实现了功能也是晕晕呼呼的
0 0
原创粉丝点击