读书人

ListView中动态刷新数据的另类步骤

发布时间: 2013-11-09 17:06:41 作者: rapoo

ListView中动态刷新数据的另类方法

前阵子有个需求,一个显示视频的listview,每个item中包含点播次数,点击一次立即加1,并动态显示在界面上。看了好多资料,拜读了很多帖子,也试了很多方法,用notifyDataSetChanged()都不行。看到优酷客户端(塞班系统的)也不能更新次数,本来都泄气了,结果被论坛里一个牛人说:“你很强,研究出来分享下”,硬着头皮上呗。但我觉得理论上肯定是可以实现的,经过艰苦卓绝的尝试,终于皇天不负有心人。现在和大家分享一下经验,相信一定对很多人的应用有用,也欢迎大家拍砖。

1.在点击item的监听程序onItemClick()中调用播放方法并加1,发送消息给handler更新次数

private void updatePalyNum(final int position) {   new Thread() {     public void run() {    try {                                        boolean updateFlag = videoWS.updateData(getString(R.string.WSURL_update),newsList.get(position).getVideoID());                                                if(updateFlag){                                                int playNum=Integer.parseInt(newsList.get(position).getPlayNum());playNum++;                                                newsList.get(position).setPlayNum(playNum+"");                                                Uri uri = Uri.parse(newsList.get(position).getUrl());Intent intent = new Intent(Intent.ACTION_VIEW,uri);intent.setType("video/*");intent.setDataAndType(uri , "video/*");startActivity(intent);                                                Thread.sleep(400);                                                        handler.sendEmptyMessage(5);                                        }                                                                                                          }catch (InterruptedException e) {                                        e.printStackTrace();                                }                        }                }.start();        }

?2.handler处理刷新listview

case 5:listAdapter=null;                                listView.setAdapter(getAdapter(newsList));break;

?这个方法我不知道是不是正规,希望高手指点。另外还有一点问题就是每次重新加载都是在第一页,如果当时您不在第一页播放的话播放完回来就找不着北了,不过这个问题理论上也是可以解决的。

读书人网 >移动开发

热点推荐