前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android项目实战(十):自定义倒计时的TextView

Android项目实战(十):自定义倒计时的TextView

作者头像
听着music睡
发布2018-05-18 15:01:19
9160
发布2018-05-18 15:01:19
举报
文章被收录于专栏:Android干货Android干货

项目总结

--------------------------------------------------------------------------------------------

有这么一个需求:

我有一个ListView,每一个列表项 布局如上图,顶部一个大图片展示,中部一个音频播放,底部一个描述文字。

在这个界面,一次只能点击一个列表项的播放按钮,那么我直接在ListView所属的activity创建了唯一的一个MediaPlayer,然而,这不是问题,所有的音频方面的播放冲突都解决了

问题就在中部的音频播放,我需要点击左边的播放按钮,然后右边有一个剩余时间要跟随着变化,当然点击暂停的时候,剩余时间也要暂停

首先,这里运用了购物车功能的原理实现按钮的操作。Android 购物车功能的实现

怎么实现某一个列表项中的TextView 显示的剩余时间也跟随着变化呢?

找寻了很多方法,最后问了一个Android交流群的群主得以解决。

怎么实现呢:

即自定义一个TextView在列表项中来显示剩余时间,只要每次刷新适配器的时候,给这个自定义的TextView 一个初始值,然后TextView就可以自己自定来把初始值每秒减一,显示在TextView上面。

那么看下这个自定义TextView

代码语言:javascript
复制
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;


public class ShowTiemTextView extends TextView implements Runnable{

    private boolean run = false; //觉得是否执行run方法
    private int time;         
public ShowTiemTextView(Context context) {
        super(context);
    }

    public ShowTiemTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public void setTime(int time){  //设定初始值
        this.time = time;  
    }
    public boolean isRun(){
        return run;
    }
    public void beginRun(){
        this.run = true;
        run();
    }
    public void stopRun(){
        this.run = false;
    }
    @Override
        public void run() {
        if (run){
            ComputeTime();
            this.setText(time / 60 + "'" + time % 60);
            postDelayed(this, 1000);
        }else{
            removeCallbacks(this);
        }
    }

    private void ComputeTime(){
        time--;
        if (time==0)
            stopRun();
    }
}

适配器调用关键代码:

代码语言:javascript
复制
//holder.list_detail_music_play是一个TextView

学习内容来自:

自定义倒计时控件

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-11-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档