切换按钮事件无法在各种设备上运行

时间:2012-07-21 16:07:55

标签: android events togglebutton android-event

我正在各种型号上测试我的应用程序,我已经意识到切换按钮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状态,但这似乎不适用于其他设备。

2 个答案:

答案 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();
             }
             }
             });