你可以做的是:
int downloadCount = 0;
int calendarCount = 0;
int startCount = 0;
public void checked(CheckBox checkBox,int count){
if (checkBox.isChecked()){
count++;
} else if (!checkBox.isChecked()){
checkBox.setChecked(true);
count++;
}
if (count == 1){
checkBox.setButtonDrawable(R.drawable.custom_yellow_checkbox);
}
if (count == 2){
checkBox.setButtonDrawable(R.drawable.custom_green_checkbox);
}
if (count > 2){
count = 0;
checkBox.setButtonDrawable(R.drawable.custom_red_checkbox);
}
}
chkDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checked(chkDownload,downloadCount);
}
});
chkGetCalendar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checked(chkGetCalendar,calendarCount);
}
});
chkStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checked(chkStart,startCount);
}
});
編輯
你可以做的,然後是返回的數量,使得它保留它。
如:
public int checked(CheckBox checkBox,int count){
if (checkBox.isChecked()){
count++;
} else if (!checkBox.isChecked()){
checkBox.setChecked(true);
count++;
}
if (count == 1){
checkBox.setButtonDrawable(R.drawable.custom_yellow_checkbox);
}
if (count == 2){
checkBox.setButtonDrawable(R.drawable.custom_green_checkbox);
}
if (count > 2){
count = 0;
checkBox.setButtonDrawable(R.drawable.custom_red_checkbox);
}
return count;
}
chkDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
downloadCount = checked(chkDownload,downloadCount);
}
});
我不知道你的代碼是什麼樣子,但我剛剛建立了這個和它的作品:
public class MainActivity extends AppCompatActivity {
int downloadCount = 0;
int calendarCount = 0;
int startCount = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final CheckBox chkDownload = (CheckBox) findViewById(R.id.chkDownload);
final CheckBox chkGetCalendar = (CheckBox) findViewById(R.id.chkGetCalendar);
final CheckBox chkStart = (CheckBox) findViewById(R.id.chkStart);
chkDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
downloadCount = checked(chkDownload, downloadCount);
}
});
chkGetCalendar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calendarCount = checked(chkGetCalendar, calendarCount);
}
});
chkStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startCount = checked(chkStart, startCount);
}
});
}
public int checked(CheckBox checkBox, int count) {
if (checkBox.isChecked()) {
count++;
} else if (!checkBox.isChecked()) {
checkBox.setChecked(true);
count++;
}
if (count == 1) {
checkBox.setButtonDrawable(R.drawable.ic_menu_camera);
}
if (count == 2) {
checkBox.setButtonDrawable(R.drawable.ic_menu_gallery);
}
if (count > 2) {
count = 0;
checkBox.setButtonDrawable(R.drawable.ic_menu_manage);
}
return count;
}
}
您將需要一個計數器,每個複選框。當你點擊'chkDownload'時,'count'會增加,如果你按下'chkStart',它會再次增加。 – Tony
有沒有辦法讓方法中的計數器像選中一樣(複選框複選框,int計數器),並使單個計數器處於選中該參數(chkStart,count1);檢查(chkDownload,count2);?我不想在每個複選框中放入選中的方法,因爲我覺得效率不高。 – Karna
檢查我的答案,如果這是你正在尋找的 – Tony