いくつかの目標が定義されているテキストビューのリストがあります。ユーザーは最大3つの目標を選択できます。彼はまた、彼の選択したゴールを選択解除し、別のゴールを選択することもできる。現在私がやったことは、ユーザーが3つのゴールだけを選ぶことができますが、ユーザーがゴールを選択解除して別のゴールを選択しようとした場合です。ここで選択ボタンと選択解除ボタン
私のコードは次のとおりです。
public void onClick(View v) {
switch (v.getId()) {
case R.id.goalText1:
if (count <= 2 && isSelected) {
goals.add(mGoal1.getText().toString());
mGoal1.setTextColor(getResources().getColor(R.color.black));
count++;
isSelected=false;
mGoal1.setSelected(true);
} else {
isSelected = true;
goals.remove(mGoal1.getText().toString());
mGoal1.setTextColor(getResources().getColor(R.color.white));
mGoal1.setSelected(false);
}
break;
case R.id.goalText2:
if (count <= 2 && isSelected) {
goals.add(mGoal2.getText().toString());
mGoal2.setTextColor(getResources().getColor(R.color.black));
count++;
mGoal2.setSelected(true);
isSelected=false;
} else {
isSelected = true;
goals.remove(mGoal1.getText().toString());
mGoal2.setTextColor(getResources().getColor(R.color.white));
mGoal2.setSelected(false);
Toast.makeText(getApplicationContext(), "select upto 3 fitness goals only " , Toast.LENGTH_LONG).show();
}
break;
case R.id.goalText3:
if (count <= 2 && isSelected) {
goals.add(mGoal3.getText().toString());
mGoal3.setTextColor(getResources().getColor(R.color.black));
count++;
mGoal3.setSelected(true);
isSelected=false;
} else {
isSelected = true;
goals.remove(mGoal1.getText().toString());
mGoal3.setTextColor(getResources().getColor(R.color.white));
mGoal3.setSelected(false);
Toast.makeText(getApplicationContext(), "select upto 3 fitness goals only " , Toast.LENGTH_LONG).show();
}
break;
case R.id.goalText4:
if (count <= 2 && isSelected) {
goals.add(mGoal4.getText().toString());
mGoal4.setTextColor(getResources().getColor(R.color.black));
count++;
mGoal4.setSelected(true);
isSelected=false;
} else {
isSelected = true;
goals.remove(mGoal1.getText().toString());
mGoal4.setTextColor(getResources().getColor(R.color.white));
mGoal4.setSelected(false);
Toast.makeText(getApplicationContext(), "select upto 3 fitness goals only " , Toast.LENGTH_LONG).show();
}
break;
そのようなものを試してみてください。 if(count> 0) --count; elseブランチ – canisLupusLupus
@gaurav tiwariあなたはisSelectedとして1つの妥当な値から値をチェックしているので、それはあなたを助けてくれませんので、上記のコードが方向を向いているので、リストを使用して値を追加し、それがリストに存在するかどうかチェックして、それを管理してください。 – Vickyexpert
@Vickyexpertあなたは私にいくつかの例を教えてもらえませんでしたか? –