2012-07-21 66 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