一段时间后,取消切换按钮 [英] Uncheck ToggleButton after some period of time
本文介绍了一段时间后,取消切换按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望我的切换按钮是一段时间后,未选中,当我检查一下。我使用Timer和TimerTask但我的应用程序始终强制关闭当我试图做到这一点。这是code:
公共类Vjezba5Activity延伸活动{TimerTask的TimerTask11;
定时器定时器1 =新的Timer();/ **当第一次创建活动调用。 * /
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main); 最后切换按钮TB1 =(切换按钮)findViewById(R.id.toggleButton1);
TB1.setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v){
如果(TB1.isChecked()){
TimerTask11 =新的TimerTask(){
公共无效的run(){
TB1.setChecked(假);
}
};
timer1.schedule(TimerTask11,1000);
}
其他{
Toast.makeText(Vjezba5Activity.this,取消选中Toast.LENGTH_SHORT).show();
} }
});
}
解决方案
您只能更新从主线程的用户界面。
尝试使用的处理程序。
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main); 最后切换按钮TB1 =(切换按钮)findViewById(R.id.toggleButton1);
处理程序处理程序=新的处理程序();
TB1.setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v){
如果(TB1.isChecked()){
handler.postDelayed(新的Runnable(){ 公共无效的run(){
TB1.setChecked(假);
}
},1000);
}
其他{
Toast.makeText(Vjezba5Activity.this,取消选中Toast.LENGTH_SHORT).show();
} }
});
}
I want my ToggleButton to be unchecked after some period of time when i check it. I am using Timer and TimerTask but my application always force close when i try to do this. This is the code:
public class Vjezba5Activity extends Activity {
TimerTask TimerTask11;
Timer timer1 = new Timer();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ToggleButton TB1 = (ToggleButton) findViewById(R.id.toggleButton1);
TB1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (TB1.isChecked()){
TimerTask11 = new TimerTask() {
public void run() {
TB1.setChecked(false);
}
};
timer1.schedule(TimerTask11, 1000);
}
else {
Toast.makeText(Vjezba5Activity.this, "Uncheck", Toast.LENGTH_SHORT).show();
}
}
});
}
解决方案
You can only update the UI from the main thread.
Try using a handler.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ToggleButton TB1 = (ToggleButton) findViewById(R.id.toggleButton1);
Handler handler = new Handler();
TB1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (TB1.isChecked()){
handler.postDelayed(new Runnable() {
public void run() {
TB1.setChecked(false);
}
}, 1000);
}
else {
Toast.makeText(Vjezba5Activity.this, "Uncheck", Toast.LENGTH_SHORT).show();
}
}
});
}
这篇关于一段时间后,取消切换按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文