你的位置:首页 > 软件开发 > 操作系统 > 项目需求:自定义倒计时的TextView

项目需求:自定义倒计时的TextView

发布时间:2015-11-16 23:00:03
现在这么一个需求:我有一个ListView,每一个列表项 布局如上图,顶部一个大图片展示,中部一个音频播放,底部一个描述文字。在这个界面,一次只能点击一个列表项的播放按钮,那么我直接在ListView所属的activity创建了唯一的一个MediaPlayer,然而,这不是问题, ...

项目需求:自定义倒计时的TextView

现在这么一个需求:

项目需求:自定义倒计时的TextView

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

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

 

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

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

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

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

怎么实现呢:

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

 

那么看下这个自定义TextView

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();  }}

原标题:项目需求:自定义倒计时的TextView

关键词:ie

ie
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。