取消方法在Count Down Timer类中不起作用?

时间:2016-09-03 04:32:06

标签: android methods counter

我设计了一个应用程序,它有两个按钮,一个用于启动计数器,另一个用于停止。启动计数器工作正常,但当我单击停止按钮时,应用程序崩溃 我的代码有什么问题?

public class MainActivity extends AppCompatActivity {
    int i=1;
    TextView txt;
    Counter ct;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void bustart(View view) {
        startTime();
    }

    public void buop(View view) {
        ct.cancel();
    }

    public void startTime(){
        i=1;
        txt=(TextView)findViewById(R.id.textView);
        ct=new Counter(5000,1000);
        ct.start();
    }

    public  class Counter extends CountDownTimer{

        Counter(long millisInFuture,long countDownInterval){
            super(millisInFuture,countDownInterval);
        }

        public void onTick(long millisUntilFinished) {
            txt.setText(String.valueOf(i));
            i++;
        }

        public void onFinish() {
            txt.setText("Done");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

确保你将buop点击给你的Xml。,就像那样

<Button
    android:id="@+id/btn1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
 android:onClick="buop"
    android:layout_centerInParent="true"
    android:padding="20dp"
    android:text="Cancel"
    android:visibility="visible"

    />

<Button
    android:id="@+id/btn2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="bustart"
    android:layout_centerInParent="true"
    android:padding="20dp"
    android:text="Start"
    android:visibility="visible"
    android:layout_below="@+id/btn1"

    />

采取布尔值以确保计时器启动其他如果你取消按钮而没有启动是崩溃生成。否则你的代码很好......

boolean timerStart=false;


public void bustart(View view) {
    if(!timerStart) {

      timerStart=true;
        startTime();
    }
 }


 public void buop(View view) {

    if(timerStart) {
        timerStart=false;
        ct.cancel();
    }
    }

enter image description here