我正在做一个项目。我有一个按钮,这个按钮点击事件ı获取数据肥皂服务。
我有一个问题。我做计时器和这个计时器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);
我使用但是null点错误,怎么做?
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 );
}
});
}
}
答案 0 :(得分:0)
您可以使用performClick()或callOnClick()
performClick()
在API级别1中添加。
调用此视图的OnClickListener 如果它被定义。执行与之关联的所有正常操作 点击:报告辅助功能事件,播放声音等
callOnClick()
在API级别15中添加。 直接打电话给任何附件 OnClickListener。与performClick不同,这只调用了监听器, 并且不会执行任何相关的点击操作,例如报告 无障碍活动。
imerTask timerTask = new TimerTask() {
@Override
public void run() {
btnrefres.performClick();
}
};
Timer timer = new Timer();
timer.schedule(timerTask, 0, 5000);
第二个选项是: 在函数中添加所有soap服务。稍后在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**
}