CheckBox学习:
多个按钮在一个监听器里执行;
package com.example.checkboxapp;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.app.Activity;
public class MainActivity extends Activity {
private CheckBox run;
private CheckBox sleep;
private CheckBox eat;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
run = (CheckBox)findViewById(R.id.run);
eat = (CheckBox)findViewById(R.id.eat);
sleep = (CheckBox)findViewById(R.id.sleep);
run.setText(R.string.run);
eat.setText(R.string.eat);
sleep.setText(R.string.sleep);
CheckBoxListener listener = new CheckBoxListener();
run.setOnClickListener(listener);
sleep.setOnClickListener(listener);
eat.setOnClickListener(listener);
}
class CheckBoxListener implements OnClickListener {
public void onClick(View v) {
//取得组件id
if (v.getId() == R.id.eat) {
System.out.println("CheckBox is eat");
} else if (v.getId() == R.id.sleep) {
System.out.println("Check Box is sleep");
} else if (v.getId() == R.id.run) {
System.out.println("CheckBox is run");
}
}
}
}
package com.example.checkboxapp;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.app.Activity;
public class MainActivity extends Activity {
private CheckBox run;
private CheckBox sleep;
private CheckBox eat;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
run = (CheckBox)findViewById(R.id.run);
eat = (CheckBox)findViewById(R.id.eat);
sleep = (CheckBox)findViewById(R.id.sleep);
run.setText(R.string.run);
eat.setText(R.string.eat);
sleep.setText(R.string.sleep);
CheckBoxListener listener = new CheckBoxListener();
run.setOnCheckedChangeListener(listener);
eat.setOnCheckedChangeListener(listener);
sleep.setOnCheckedChangeListener(listener);
}
class CheckBoxListener implements OnCheckedChangeListener {
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
//view为组件对象,如果id是当前id输出当前语句
if (view.getId() == R.id.run) {
System.out.println("run");
} else if (view.getId() == R.id.eat) {
System.out.println("eat");
} else if (view.getId() == R.id.sleep) {
System.out.println("sleep");
}
//按钮被选中输出checked,如果没有选中输出unchecked;
if (isChecked) {
System.out.println("checked");
} else {
System.out.println("unchecked");
}
}
}
}
全部代码:
package com.example.checkboxapp;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.app.Activity;
public class MainActivity extends Activity {
private CheckBox run;
private CheckBox sleep;
private CheckBox eat;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
run = (CheckBox)findViewById(R.id.run);
eat = (CheckBox)findViewById(R.id.eat);
sleep = (CheckBox)findViewById(R.id.sleep);
run.setText(R.string.run);
eat.setText(R.string.eat);
sleep.setText(R.string.sleep);
CheckBoxListener listener = new CheckBoxListener();
run.setOnClickListener(listener);
sleep.setOnClickListener(listener);
eat.setOnClickListener(listener);
}
class CheckBoxListener implements OnClickListener {
public void onClick(View v) {
if (v.getId() == R.id.eat) {
System.out.println("CheckBox is eat");
} else if (v.getId() == R.id.sleep) {
System.out.println("Check Box is sleep");
} else if (v.getId() == R.id.run) {
System.out.println("CheckBox is run");
}
}
}
}
package com.example.checkboxapp;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.app.Activity;
public class MainActivity extends Activity {
private CheckBox run;
private CheckBox sleep;
private CheckBox eat;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
run = (CheckBox)findViewById(R.id.run);
eat = (CheckBox)findViewById(R.id.eat);
sleep = (CheckBox)findViewById(R.id.sleep);
run.setText(R.string.run);
eat.setText(R.string.eat);
sleep.setText(R.string.sleep);
CheckBoxListener listener = new CheckBoxListener();
run.setOnCheckedChangeListener(listener);
eat.setOnCheckedChangeListener(listener);
sleep.setOnCheckedChangeListener(listener);
}
class CheckBoxListener implements OnCheckedChangeListener {
public void onCheckedChanged(CompoundButton view, boolean isChecked) {
if (view.getId() == R.id.run) {
System.out.println("run");
} else if (view.getId() == R.id.eat) {
System.out.println("eat");
} else if (view.getId() == R.id.sleep) {
System.out.println("sleep");
}
if (isChecked) {
System.out.println("checked");
} else {
System.out.println("unchecked");
}
}
}
}