Как разместить разные CheckBox внутри каждого элемента другого CheckBox?
Я хочу создать checkBox
внутри другого checkBox
предметы и конечные предметы, которые появляются в textView
это общий выбор вторых. Я сделал первый checkBox
правильно и работает нормально, но я хочу поместить второй в первый относительно этого: у меня есть более 30 пунктов в первом checkBox
так что я не могу использовать случай переключения 0,1,2,...setmultiplechoiceclicklistner()
это очень глупо.
Как я могу это сделать?
<string-array name="shopingItems">
<item>a</item>
<item>b</item>
<item>c</item>
<item>d</item>
<item>e</item>
</string-array>
<string-array name="a">
<item>aa</item>
<item>ba</item>
<item>ca</item>
<item>da</item>
<item>ea</item>
</string-array>
<string-array name="b">
<item>ba</item>
<item>bb</item>
<item>bc</item>
<item>bd</item>
<item>be</item>
</string-array>
Моя деятельность:
public class CreateAddActivity extends AppCompatActivity {
private TextView TV;
private Button btn;
String[] listItems;
boolean[] checkedItems;
ArrayList<Integer> mUserItems = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_add);
TV = findViewById(R.id.tvItemSelected);
btn = findViewById(R.id.btnOrder);
listItems = getResources().getStringArray(R.array.shopingItems);
checkedItems = new boolean[listItems.length];
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder mBuilder =
new AlertDialog.Builder(CreateAddActivity.this);
mBuilder.setTitle("Items available in a shop");
mBuilder.setMultiChoiceItems(listItems, checkedItems, new
DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int position, boolean
isChecked) {
if (isChecked) {
mUserItems.add(position);
} else if (mUserItems.contains(position)) {
// Else, if the item is already in the array, remove it
mUserItems.remove(Integer.valueOf(position));
}
}
});
mBuilder.setCancelable(false);
mBuilder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int position) {
StringBuilder item = new StringBuilder();
for (int i = 0; i < mUserItems.size(); i++) {
item.append(listItems[mUserItems.get(i)]);
if ( i != mUserItems.size() - 1 ) {
item.append(",");//put coma if it is not the last item
}//not the last item
}
//TV.setText(item.toString());
}
});
mBuilder.setNegativeButton("Dismiss", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
mBuilder.setNeutralButton("clear", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (int i = 0; i < checkedItems.length; i++) {
checkedItems[i] = false;
mUserItems.clear();
TV.setText("");
}
}
});
AlertDialog mDialog = mBuilder.create();
mDialog.show();
}
});
}
}