2012-07-21 33 views
4

我在各种型号上测试我的应用程序,并且我意识到切换按钮ON和OFF事件不起作用。这是设备的列表:切换按钮事件不适用于各种设备

三星YS5360 三星Galaxy Note 三星小号加 HTC感觉XE HTC野火S 摩托罗拉RAZR
LG的Optimus黑色 索尼爱立信Xperia新V

我不是确定我做错了什么,因为我遵循所有Android规范。这些事件适用于其他设备。请给我一些帮助,有人吗?

[重新编辑]

这是怎么了实现监听器:

@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

任何想法的人,以我应该如何进行? – user788511 2012-07-21 16:20:52

+0

你将不得不张贴一些相关的代码,因为我们没有什么可以离开这里。 – 2012-07-21 16:29:13

+0

使用调试器并确保它不触发这些设备上的更改。 – caiocpricci2 2012-07-21 16:45:59

回答

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

使用文本知道ToggleButton的状态是一个坏主意。改为使用isChecked参数。看到它的documentation.

@Override 
public void onCheckedChanged (CompoundButton buttonView, boolean isChecked) { 
    if (isChecked) { 
     /* checked. ON */ 
    } else { 
     /* unchecked. OFF */ 
    } 
    ... 
} 
+0

不幸的是,这不会做的伎俩:( – user788511 2012-07-26 09:12:42

+0

将不得不看到一些更多的相关代码..和布局文件。 – Ronnie 2012-07-26 09:47:50

+0

我很抱歉,但你所有的建议似乎并不工作..我的智慧结束了! – user788511 2012-07-31 07:57:21