ToggleButtonがあり、単純なクリックアクションを設定する必要があります。 ToggleButtonの単純なクリックリスナーを実装するにはどうすればよいですか?
詳細が必要な場合はお問い合わせください。
ToggleButtonはViewを拡張するため、次のように View.setOnClickListener() を使用するだけです。
// get your ToggleButton
ToggleButton b = (ToggleButton) findViewById(R.id.myButton);
// attach an OnClickListener
b.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// your click actions go here
}
});
this.someToggleButton = (ToggleButton)findViewById(R.id.someToggleButton) ;
this.someToggleButton.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked) {
doSomethingWith(toggleButton, isChecked) ;
}
}) ;
View.setOnClickListener()
を使用し、ボタンの状態を確認します。
final ToggleButton tB = (ToggleButton) findViewById(R.id.toggleButton1);
tB.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(tB.isChecked()){
//Button is ON
// Do Something
}
else
//Button is OFF
// Do Something
}
});
他の回答では強調されていない点を追加するだけです。クリックハンドラーをプログラムでバインドすることは、定型コードでは少し重いです。 ドキュメント で述べたように、次のような特定のシナリオでのみ必要です。
ToggleButtonがレイアウトで定義されている場合、そこにハンドラメソッドをバインドする方がはるかに簡単でクリーンです
<ToggleButton
Android:id="@+id/togglebutton"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textOn="On"
Android:textOff="Off"
Android:onClick="onToggleClicked"/>
次に、アクティビティJavaでハンドラーメソッドのみを定義する必要があります。
public void onToggleClicked(View view) {
if(((ToggleButton) view).isChecked()) {
// handle toggle on
} else {
// handle toggle off
}
}
メソッドには任意の名前を付けることができますが、署名は次の基準を満たす必要があります。
public
メソッドでなければなりませんvoid
を返す必要がありますView
の単一の引数を取る必要があります(これはクリックされたView
になります)@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
Toast.makeText(getApplicationContext(),"on",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(),"off",Toast.LENGTH_SHORT).show();
}
}
mTB = (ToggleButton) findViewById(R.id.toggleButton1);
mTB.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// Is the toggle on?
boolean on = ((ToggleButton) v).isChecked();
if (on) {
// Enable here
} else {
// Disable here
}
}
});
コードから追加するには、次のようなことができます:
yourButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
ただし、ボタンのXMLで、onClickアクション/イベントに関連付けるメソッドを指定することもできます。
setOnCheckedChangeListener
のメソッド ToggleButton クラス
ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked) {
//
}
}) ;
上記のコードが機能しない場合は試してください
b.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// your click actions go here
}
});