public class MyAdapter extends BaseAdapter {
private List<Integer> list;
private List<Integer> positionList = new ArrayList<>();
private MainActivity mainActivity;
public MyAdapter(List<Integer> list, MainActivity mainActivity) {
this.list = list;
this.mainActivity = mainActivity;
}
//private Timer timer = new Timer();
@Override
public int getCount() {
return list.size();
}
@Override
public View getView( int position, View convertView, ViewGroup parent) {
View view = null;
Timer timer;
MyTask task;
if(convertView == null) {
view = mainActivity.getLayoutInflater().inflate(R.layout.item_layout,null);
timer = new Timer();
task = new MyTask((NumberProgressBar)view.findViewById(R.id.npb),list.get(position));
view.setTag(task);
timer.schedule (task
, 1000, 10);
}else {
view = convertView;
task = (MyTask) view.getTag();
task.progress= list.get(position);
task.npb.setProgress(0);
}
return view;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
class MyTask extends TimerTask{
private NumberProgressBar npb;
private int progress;
private MyRunnable myRunnable = new MyRunnable();
public MyTask(NumberProgressBar npb,int progress) {
this.npb = npb;
this.progress = progress;
}
@Override
public void run() {
mainActivity.runOnUiThread(myRunnable);
}
class MyRunnable implements Runnable {
@Override
public void run() {
if(npb.getProgress() < progress ){
npb.incrementProgressBy(1);
}
}
}
}
}
private List<Integer> list;
private List<Integer> positionList = new ArrayList<>();
private MainActivity mainActivity;
public MyAdapter(List<Integer> list, MainActivity mainActivity) {
this.list = list;
this.mainActivity = mainActivity;
}
//private Timer timer = new Timer();
@Override
public int getCount() {
return list.size();
}
@Override
public View getView( int position, View convertView, ViewGroup parent) {
View view = null;
Timer timer;
MyTask task;
if(convertView == null) {
view = mainActivity.getLayoutInflater().inflate(R.layout.item_layout,null);
timer = new Timer();
task = new MyTask((NumberProgressBar)view.findViewById(R.id.npb),list.get(position));
view.setTag(task);
timer.schedule (task
, 1000, 10);
}else {
view = convertView;
task = (MyTask) view.getTag();
task.progress= list.get(position);
task.npb.setProgress(0);
}
return view;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
class MyTask extends TimerTask{
private NumberProgressBar npb;
private int progress;
private MyRunnable myRunnable = new MyRunnable();
public MyTask(NumberProgressBar npb,int progress) {
this.npb = npb;
this.progress = progress;
}
@Override
public void run() {
mainActivity.runOnUiThread(myRunnable);
}
class MyRunnable implements Runnable {
@Override
public void run() {
if(npb.getProgress() < progress ){
npb.incrementProgressBy(1);
}
}
}
}
}