如题,我在listview里放了chronometer,listview的onitemclick事件为该item的计时器启动,但是如果同时点击多个item,每个计时器都会启动,比如说我点了第一行,第一行的计时器启动了;再点第二行,第二行的计时器也启动而第一行的不停止。怎么设置成当一个计时器工作时,其余的不同时启动,而第一个计时器结束时,后面的在依次启动??就有点像迅雷下载器的同时只能下载一个任务那样。求教,谢谢!!
附上我的代码
上面的是listview,下面的是onitemclick
附上我的代码
Button add=(Button)findViewById(R.id.add);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("添加任务:");
LayoutInflater inflater=getLayoutInflater();
final View view=inflater.inflate(R.layout.addactivity, null);
builder.setView(view);
builder.setPositiveButton("添加", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO 自动生成的方法存根
//final Chronometer ch=(Chronometer)findViewById(R.id.chronometer1);
//ch.setBase(SystemClock.elapsedRealtime());
//ch.setFormat("%s");
EditText editname=(EditText)view.findViewById(R.id.editName);
String name=editname.getText().toString();
EditText edittime=(EditText)view.findViewById(R.id.editTime);
//edittime.setInputType(InputType.TYPE_CLASS_NUMBER);
String time=edittime.getText().toString();
//int inttimeminute=Integer.parseInt(time);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("1", name);
map.put("2", time);
listItem.add(map);
mSimpleAdapter.notifyDataSetChanged();
}
});
builder.setNegativeButton("取消", null);
builder.create().show();
}
});
上面的是listview,下面的是onitemclick
lv.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,int position, long id){
TextView time=(TextView)view.findViewById(R.id.tasktime);
String stringtime=time.getText().toString();
final int inttimeminute=Integer.parseInt(stringtime);
final TextView finshistatus=(TextView)view.findViewById(R.id.finishstatus);
//a.setText(stringtime);
final Chronometer ch=(Chronometer)view.findViewById(R.id.chronometer1);
ch.setBase(SystemClock.elapsedRealtime());
ch.setFormat("%s");
ch.start();
ch.setOnChronometerTickListener(new OnChronometerTickListener(){
@Override
public void onChronometerTick(Chronometer chronometer){
if(SystemClock.elapsedRealtime()-ch.getBase()>=inttimeminute*60000){
ch.stop();
//TextView finish=(TextView)view.findViewById(R.id.finishstatus);
finshistatus.setText("完成");
minutes=minutes+inttimeminute;
TextView addtime=(TextView)findViewById(R.id.addtime);
addtime.setText("共"+""+minutes+"分钟");
}
}
});
}
});