如何在启用某些内容时连续执行单击

时间:2018-03-10 12:43:33

标签: android delay android-handler android-7.1-nougat postdelayed

我是初学者......我需要在启用按钮后连续10秒运行一些代码。 当我点击它并转向禁用状态时,计时器停止。 我使用下面的代码,但每次点击timerbutton时它只运行一次... 我想我必须使用threed,我想我也用过它!但我没有实现目标。

private View.OnClickListener ontimerclicked = new View.OnClickListener() {
    @Override
    public void onClick(View view) {


        Handler myHandler = new Handler();
        myHandler.postDelayed(new Runnable() {
            @Override
            public void run() {

                if (endistimer==false) {
                    endistimer=true;
                    varbtnimgslidtimer.setBackgroundColor(Color.parseColor("#E91E63"));                       
                    varbtnimgnext.performClick();

                    intdelay=10000;
                }
                else
                {
                    endistimer=false;
                    varbtnimgslidtimer.setBackgroundColor(Color.parseColor("#dddddd"));
                    intdelay=0;

                }


            }
        }, intdelay);

    }
};

1 个答案:

答案 0 :(得分:0)

我最终用下面的代码解决了它。我把它用于其他人:

 private View.OnClickListener ontimerclicked = new View.OnClickListener() {
    @Override
    public void onClick(View view) {

       mHandler = new Handler();

        if (endistimer==false) {
            endistimer=true;
            varbtnimgslidtimer.setBackgroundColor(Color.parseColor("#E91E63"));

        }
        else
        {
            endistimer=false;
            varbtnimgslidtimer.setBackgroundColor(Color.parseColor("#dddddd"));
            intdelay=5000;
            cntsec=0;
            varbtnplusfive.setText(arrsec[0] +" Sec");


        }


        new Thread(new Runnable() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                while (endistimer) {
                    try {
                        Thread.sleep(intdelay);
                        mHandler.post(new Runnable() {

                            @Override
                            public void run() {
                                // TODO Auto-generated method stub
                                // your codes
                                // you can set continue_or_stop to false, for stop

                            }
                        });
                    } catch (Exception e) {
                        // TODO: handle exception
                        Toast.makeText(slideword.this,e.toString(),Toast.LENGTH_SHORT);
                    }
                }
            }
        }).start();


    }
};