先上图:
下面是Activity代码:还是四个步骤老方法。
其中有两个比较实用,在全选CheckBox事件处理中用到到了setcheck方法,让其选中或取消选中其他的CheckBox,其他的没有什么,点击选中按键,屏幕会弹出选中的字符。
package com.example.urien.secondapp;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;
public class Lesson4_Activity extends AppCompatActivity {
//1.声明控件
private CheckBox L4_checkBoxeat;
private CheckBox L4_checkBoxsleep;
private CheckBox L4_checkBoxstudy;
private CheckBox L4_checkBoxAll;
private Button L4_bt_confim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lesson4_);
//2.找到控件
L4_checkBoxeat = findViewById(R.id.L4_checkBoxeat);
L4_checkBoxstudy = findViewById(R.id.L4_checkBoxstudy);
L4_checkBoxsleep = findViewById(R.id.L4_checkBoxsleep);
L4_checkBoxAll = findViewById(R.id.L4_checkBoxAll);
L4_bt_confim = findViewById(R.id.L4_bt_confim);
//设置监听器
setListener();
}
//4.设置点击监听器
private void setListener(){
Onclick onclick = new Onclick();
L4_checkBoxeat.setOnClickListener(onclick);
L4_checkBoxsleep.setOnClickListener(onclick);
L4_checkBoxstudy.setOnClickListener(onclick);
L4_checkBoxAll.setOnClickListener(onclick);
L4_bt_confim.setOnClickListener(onclick);
}
//3.实现监听器接口
class Onclick implements View.OnClickListener{
@Override
public void onClick(View v) {
String str = null;
switch (v.getId()){
case R.id.L4_checkBoxeat:
str = "吃饭";
break;
case R.id.L4_checkBoxsleep:
str = "睡觉";
break;
case R.id.L4_checkBoxstudy:
str = "学习";
break;
case R.id.L4_checkBoxAll:
if(L4_checkBoxAll.isChecked()){
L4_checkBoxeat.setChecked(true);
L4_checkBoxsleep.setChecked(true);
L4_checkBoxstudy.setChecked(true);
}
else{
L4_checkBoxeat.setChecked(false);
L4_checkBoxsleep.setChecked(false);
L4_checkBoxstudy.setChecked(false);
}
case R.id.L4_bt_confim:
if(L4_checkBoxeat.isChecked()) str = "吃饭";
if(L4_checkBoxsleep.isChecked()) str += " 睡觉";
if(L4_checkBoxstudy.isChecked()) str += " 学习";
break;
}
if(v.getId() != R.id.L4_checkBoxAll)
Toast.makeText(Lesson4_Activity.this,str,Toast.LENGTH_SHORT).show();
}
}
}
上述用到的是点击监听事件,下面再把全选框扩展成状态改变监听事件:
package com.example.urien.secondapp;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
public class Lesson4_Activity extends AppCompatActivity {
//1.声明控件
private CheckBox L4_checkBoxeat;
private CheckBox L4_checkBoxsleep;
private CheckBox L4_checkBoxstudy;
private CheckBox L4_checkBoxAll;
private Button L4_bt_confim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lesson4_);
//2.找到控件
L4_checkBoxeat = findViewById(R.id.L4_checkBoxeat);
L4_checkBoxstudy = findViewById(R.id.L4_checkBoxstudy);
L4_checkBoxsleep = findViewById(R.id.L4_checkBoxsleep);
L4_checkBoxAll = findViewById(R.id.L4_checkBoxAll);
L4_bt_confim = findViewById(R.id.L4_bt_confim);
//设置监听器
setListener();
}
//4.设置监听器
private void setListener(){
Onclick onclick = new Onclick();
checkBoxChangeListener changeListener = new checkBoxChangeListener();
L4_bt_confim.setOnClickListener(onclick);
L4_checkBoxeat.setOnCheckedChangeListener(changeListener);
L4_checkBoxsleep.setOnCheckedChangeListener(changeListener);
L4_checkBoxstudy.setOnCheckedChangeListener(changeListener);
L4_checkBoxAll.setOnCheckedChangeListener(changeListener);
}
//3.实现点击事件监听器接口
class Onclick implements View.OnClickListener{
@Override
public void onClick(View v) {
String str = "";
if(L4_checkBoxeat.isChecked()) str = "吃饭";
if(L4_checkBoxsleep.isChecked()) str += " 睡觉";
if(L4_checkBoxstudy.isChecked()) str += " 学习";
Toast.makeText(Lesson4_Activity.this,str,Toast.LENGTH_LONG).show();
}
}
//3.实现CheckBox改变事件监听接口
class checkBoxChangeListener implements CompoundButton.OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String str = null;
switch (buttonView.getId()){
case R.id.L4_checkBoxeat:
if(isChecked) str = "吃饭";
break;
case R.id.L4_checkBoxsleep:
if(isChecked) str = "睡觉";
break;
case R.id.L4_checkBoxstudy:
if(isChecked) str = "学习";
break;
case R.id.L4_checkBoxAll:
if(isChecked){
L4_checkBoxeat.setChecked(true);
L4_checkBoxsleep.setChecked(true);
L4_checkBoxstudy.setChecked(true);
str = "吃饭 睡觉 学习";
}
else{
L4_checkBoxeat.setChecked(false);
L4_checkBoxsleep.setChecked(false);
L4_checkBoxstudy.setChecked(false);
}
break;
}
if(isChecked)
Toast.makeText(Lesson4_Activity.this,str,Toast.LENGTH_SHORT).show();
}
}
}
By Urien 2018年5月7日 17:16:25