首页 > 移动平台 > 详细

关于android的多选框和全选框之间的联系

时间:2015-11-20 12:17:49      阅读:332      评论:0      收藏:0      [点我收藏+]

一下是我在android4.4上运行的一个包含多选框和全选框的小程序:代码不是很精简,但是却是本人第一次写android程序!

有个小问题:当全选完成时,任意点击一个不是全选的框,系统会全部变为unchecked,不知道问题在哪,有闲着无事的大虾,谢谢帮我看看问题在哪?

import com.example.e1_10.R;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity {

private CheckBox eatBox, sleepBox, playBox, allBox;
private TextView text;
String e = "";
String s = "";
String p = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
eatBox = (CheckBox) findViewById(R.id.eatId);
sleepBox = (CheckBox) findViewById(R.id.sleepId);
playBox = (CheckBox) findViewById(R.id.playId);
allBox = (CheckBox) findViewById(R.id.all);
text = (TextView) findViewById(R.id.textview);
text.setBackgroundColor(Color.GRAY);

onBoxChangeListener listener = new onBoxChangeListener();
eatBox.setOnCheckedChangeListener(listener);
sleepBox.setOnCheckedChangeListener(listener);
playBox.setOnCheckedChangeListener(listener);
allBox.setOnCheckedChangeListener(listener);

}

// OncheckChangeListener的使用方法:

class onBoxChangeListener implements OnCheckedChangeListener {

@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
if (arg0.getId() == R.id.all) {

if (arg1) {
eatBox.setChecked(true);
sleepBox.setChecked(true);
playBox.setChecked(true);
e = "eat";
s = "sleep";
p = "play";
} else {
eatBox.setChecked(false);
sleepBox.setChecked(false);
playBox.setChecked(false);
text.setText("");
}
} else {
if (arg0.getId() == R.id.eatId) {
if (arg1)
e = "eat";
else
e = "";
}
if (arg0.getId() == R.id.sleepId) {
if (arg1)
s = "sleep";
else
s = "";
}
if (arg0.getId() == R.id.playId) {
if (arg1)
p = "play";
else
p = "";
}
}
if (e.equals("eat") && s.equals("sleep") && p.equals("play"))
allBox.setChecked(true);
if(e.equals("") || s.equals("") || p.equals(""))
allBox.setChecked(false);
if (e.equals("") && s.equals("") && p.equals("")) {
text.setText("none checked!");
allBox.setChecked(false);
} else
text.setText(e + " " + s + " " + p);
}
}

// OnClickListener的使用方法:

/*
* OnBoxListener listener = new OnBoxListener();
* eatBox.setOnClickListener(listener);
* sleepBox.setOnClickListener(listener);
* playBox.setOnClickListener(listener); }
*
* class OnBoxListener implements OnClickListener {
*
* @Override public void onClick(View view) { // TODO Auto-generated method
* stub CheckBox box = (CheckBox) view; if (box.getId() == R.id.eatId) { if
* (box.isChecked()) e = "eat"; else e=""; } if (box.getId() ==
* R.id.sleepId) { if (box.isChecked()) s = "sleep"; else s=""; } if
* (box.getId() == R.id.playId) { if (box.isChecked()) p = "play"; else
* p=""; } text.setText(e + " " + s + " " + p); }
*
* }
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

 

关于android的多选框和全选框之间的联系

原文:http://www.cnblogs.com/fufc/p/4980120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!