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;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值