I have a listview (with a custom list adapter), I need to display a countdown on every row.
For example, if my list contains 4 items, I will have 4 rows. At this po
Adapter class:-
public class CountdownAdapter extends RecyclerView.Adapter { ArrayList mList; Context mContext;
public CountdownAdapter(ArrayList mList, Context mContext) {
this.mList = mList;
this.mContext = mContext;
}
public class ViewHolder extends RecyclerView.ViewHolder {
CountDownTimer timerCount;
TextView mCountDownTxt;
public ViewHolder(View convertView) {
super(convertView);
mCountDownTxt = (TextView)convertView.findViewById(R.id.countdown_text);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return null;
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
if(holder.timerCount==null) {
holder.timerCount = new CountDownTimer(mList.get(position), 1000) {
@Override
public void onTick(long millis) {
String hms = String.format("%02d:%02d", TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
holder.mCountDownTxt.setText(hms);
}
@Override
public void onFinish() {
}
};
}
holder.mCountDownTxt.setVisibility(View.VISIBLE);
holder.timerCount.start();
}
@Override
public int getItemCount() {
return mList.size();
}
}