简体   繁体   English

如何在按钮单击事件中android timertask

[英]how to android timertask in button click event

I am doing a project. 我正在做一个项目。 I have got a one button and this button click event ı get data soap services. 我有一个按钮,此按钮单击事件ı获得数据肥皂服务。

I have a question. 我有个问题。 I do timer and this timer 3 minüte click button.. how do it? 我做定时器,这个定时器3分钟点击按钮。

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

btnrefres.setOnClickListener(new View.OnClickListener(){

**//I've done operations**
}

}




TimerTask timerTask = new TimerTask() {
@Override
public void run() {
**//I do btnrefres.setOnClickListener(new View.OnClickListener());  // not run :(**
}
};
Timer timer = new Timer();
timer.schedule(timerTask, 0, 5000);

I use to but null point eror, how do it? 我习惯于零错误,怎么办?

  public class HelloWorldActivity extends Activity {




      Button  btn_goster = (Button) findViewById(R.id.button1);

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);



        btn_goster.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                  Toast.makeText(getApplicationContext(),
                          "Buton click", Toast.LENGTH_LONG).show();

            }

            });


    }
    public  void butonclick () 
    { 
        runOnUiThread ( new  Runnable ()  { 
            public  void run () 
            { 
                  TimerTask timerTask =  new  TimerTask ()  { 
                    @Override 
                    public  void run ()  { 
                    btn_goster . performClick (); 
                    } 
                    }; 
                    Timer timer =  new  Timer (); 
                    timer . schedule ( timerTask ,  40000 ,  60000 ); 
            } 
        }); 
    }
}

You can use either performClick() or callOnClick() 您可以使用performClick()或callOnClick()

performClick()

Added in API level 1. 在API级别1中添加。
Call this view's OnClickListener if it is defined. 如果定义了此视图,请调用该视图的OnClickListener。 Performs all normal actions associated with clicking: reporting accessibility event, playing a sound, etc. 执行与单击相关的所有常规操作:报告可访问性事件,播放声音等。

callOnClick()

Added in API level 15. Directly call any attached OnClickListener. 在API级别15中添加。直接调用任何附加的OnClickListener。 Unlike performClick, this only calls the listener, and does not do any associated clicking actions like reporting an accessibility event. 与performClick不同,此操​​作仅调用侦听器,而不执行任何相关的单击操作,例如报告可访问性事件。

imerTask timerTask = new TimerTask() {
@Override
public void run() {
btnrefres.performClick();
}
};
Timer timer = new Timer();
timer.schedule(timerTask, 0, 5000);

Second option is: Add all your soap services in a function. 第二个选择是:在一个函数中添加所有肥皂服务。 Later call the function in setonclicklistener and in the timertask run(). 稍后在setonclicklistener和timertask的run()中调用该函数。

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

btnrefres.setOnClickListener(new View.OnClickListener(){
soapservice();
}
}

TimerTask timerTask = new TimerTask() {
@Override
public void run() {
soapservice();
}
};
Timer timer = new Timer();
timer.schedule(timerTask, 0, 5000);


soapservice(){
**//I've done operations**
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM