4

さまざまなモデルでアプリケーションをテストしていますが、トグルボタンのオンとオフのイベントが機能していないことに気付きました。これはデバイスのリストです:

Samsung YS5360 Samsung Galaxy Note Samsung S Plus HTC Sensation XE HTC Wildfire S Motorola RAZR
LG Optimus Black Sony Ericsson Xperia neo 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
        }
     // }
   }
};

オンとオフの両方の状態を確認しましたが、これは他のデバイスでは機能していないようです。

4

2 に答える 2

6

テキストを使用しての状態を知ることToggleButtonは悪い考えです。isChecked代わりにパラメーターを使用してください。そのドキュメントを参照してください。

@Override
public void onCheckedChanged (CompoundButton buttonView, boolean isChecked) {
    if (isChecked) {
        /* checked. ON */
    } else {
        /* unchecked. OFF */
    }
    ...
}
于 2012-07-25T13:22:24.873 に答える
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();
             }
             }
             });
于 2012-07-31T08:31:22.943 に答える