mohand abdelazez:
私は、ボタンのクリック可能にすることです人のチェックがすべてのチェックボックスはアクションが起こる必要がある場合はイベントを処理しようとしています。
これまでのところ、私は唯一のボックスがオンまたはオフが、多くのチェックボックスがクリックされたかのカウンターを設定する方法を見つけることができませんされているかどうかを確認できます。
チェックボックスは、動的であることを行っているが、このサンプルコードでは、私は静的な値を使用していました。
私はカウンターを設定しようと、私は、チェックボックスをクリックした場合、それは増加する必要がありますが、正しい方法を見つけ出すことができませんでした。
//メソッドの呼び出しI
ArrayList<String> arrayList= new ArrayList<>();
arrayList.add("2Pac");
arrayList.add("Biggie");
arrayList.add("Nas");
// Create Checkbox Dynamically
for(int i=0;i<arrayList.size();i++) {
CheckBox checkBox = new CheckBox(getContext());
checkBox.setText(arrayList.get(i));
checkBox.setTextSize(20);
checkBox.setId(++checkBoxID);
checkBox.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
// int counter = -1;
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
// String msg = "You have " + (isChecked ? "checked" : "unchecked") + " this box it Checkbox.";
//Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
if(checkBox.isChecked())
{
//Toast.makeText(getActivity(), ""+ counter, Toast.LENGTH_SHORT).show();
}else
{
// counter++;
// Toast.makeText(getActivity(), ""+ counter, Toast.LENGTH_SHORT).show();
}
}
});
for(int j=0;j<allCheckBox.size();j++)
{
if(allCheckBox.size()==arrayList.size())
{
//Toast.makeText(MainActivity.this, ""+ checkBox.getId(), Toast.LENGTH_SHORT).show();
}
}
// Add Checkbox to LinearLayout
if (linearLayout != null) {
linearLayout.addView(checkBox);
}
私はこれまでのところ、このいずれかを理解しようとして一日以上を費やしてきました!任意のヘルプやアイデアは本当に感謝しています。
ザカリアM.ジャワ:
定義カウンタを初期値0とするとき、ユーザチェックがチェックボックスは一つによってそれを増加させ、ユーザがチェックボックスは一つによってカウンタを減少させ、同じにチェックを解除するときとforループの外側onCheckedChangedこのようなチェックボックスの数のリスナーチェック
ArrayList<String> arrayList= new ArrayList<>();
arrayList.add("2Pac");
arrayList.add("Biggie");
arrayList.add("Nas");
int counter = 0; //all checkboxes unchecked
// Create Checkbox Dynamically
for(int i=0;i<arrayList.size();i++) {
CheckBox checkBox = new CheckBox(getContext());
checkBox.setText(arrayList.get(i));
checkBox.setTextSize(20);
checkBox.setId(++checkBoxID);
checkBox.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if(checkBox.isChecked())
{
counter++;
if (counter == arrayList.size()) {
//make your button clickable here
}
} else {
counter--;
//disable your button incase the user uncheck one of the checkboxes after all checkboxes were checked
} //end if
}
});
// Add Checkbox to LinearLayout
if (linearLayout != null) {
linearLayout.addView(checkBox);
} //end if
} //end for
私はそれが動作を期待コードをテストしていないので、私は自分の携帯電話からのコードを書きました