我正在各种型号上测试我的应用程序,我已经意识到切换按钮ON和OFF事件不起作用。这是设备列表:
三星YS5360
三星Galaxy Note
三星S Plus
HTC Sensation XE
HTC Wildfire S.
摩托罗拉RAZR
LG Optimus Black
索尼爱立信Xperia neo V
我不确定我做错了什么因为我遵循了所有Android规范。这些事件适用于其他设备。我可以请一些帮助吗?
[RE-EDIT]
这就是我实现监听器的方式:
@Override
public void onCheckedChanged(CompoundButton arg0, boolean change) {
if(change){
if(text.containsKey("on")){
// do something
}
}else{
if(text.containsKey("off")){
// do something
}
}
if(text.containsKey("clicked")){
// do something
}
// }
}
};
我检查ON和OFF状态,但这似乎不适用于其他设备。
答案 0 :(得分:6)
使用文本来了解ToggleButton
的状态是一个坏主意。请改用isChecked
参数。见其documentation.
@Override
public void onCheckedChanged (CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
/* checked. ON */
} else {
/* unchecked. OFF */
}
...
}
答案 1 :(得分:2)
试用此代码
toggle=(ToggleButton)findViewById(R.id.tglbtn);
toggle.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(toggle.isChecked())
{
Toast.makeText(getApplicationContext(), "The state is changed to on", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "The state is changed to off", Toast.LENGTH_LONG).show();
}
}
});