I am creating a list of options. My problem is when I select and then I want to select that same option. Mark me error in this part:
mMercado.remove(position);
Strings Code:
<string-array name="mercado">
<item>Nacional</item>
<item>EEUU</item>
<item>Canada</item>
<item>Europa</item>
<item>Japon</item>
<item>Organico</item>
<item>Limpio</item>
<item>SemíLimpio</item>
<item>2daClase</item>
<item>China</item>
<item>Mendez</item>
<item>Aventajado</item>
<item>Bandeado</item>
</string-array>
Code of the button that launches the list:
bmercado =(Button)findViewById(R.id.btnMercado);
bmercado.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder mBuilder = new AlertDialog.Builder(Cortes_Registro.this);
mBuilder.setTitle("Seleccionar Mercado");
mBuilder.setMultiChoiceItems(listMercado, checkMercado, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int position, boolean isChecked) {
if (isChecked){
if (! mMercado.contains(position)){
mMercado.add(position);
}
}else if (mMercado.contains(position)){
mMercado.remove(position);
//Aqui me marca error!!! <<<<<<<<<<<<<<<<<<<<<
}
}
});
mBuilder.setCancelable(false);
mBuilder.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String item = "";
for (int i=0; i< mMercado.size(); i++){
item = item+listMercado[mMercado.get(i)];
if (i != mMercado.size() -1){
item = item + ",";
}
}
infoMercado.setText(item);
}
});
mBuilder.setNegativeButton("Cerrar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
mBuilder.setNeutralButton("Limpiar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (int i = 0; i<checkMercado.length;i++){
checkMercado[i] = false;
mMercado.clear();
infoMercado.setText("Seleccionar Mercado");
}
}
});
AlertDialog mDialog = mBuilder.create();
mDialog.show();
}
});
The error:
E / AndroidRuntime: FATAL EXCEPTION: main Process: developersalpha.hassmovil, PID: 5123 java.lang.IndexOutOfBoundsException: Index: 4, Size: 1 at java.util.ArrayList.remove (ArrayList.java:477) at developersalpha.hassmovil.Cortes_Confirm $ 4 $ 1.onClick (Cortes_Confirmar.jav a: 94)