valor studio seleccionar seleccionado seleccion personalizado obtener multiple item elementos dinamico desplegable agregar android

studio - seleccion multiple listview android



Seleccionar mĂșltiples elementos en ListView (10)

Cómo seleccionar múltiples elementos en ListView en Android.


Debes seleccionar la opción en ArrayAdapter :

ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_single_choice, countries);


En realidad puedes;) Es solo una cuestión de experiencia del usuario, ¿verdad?

Pruebe esto, (1) para establecer el control de lista

listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); listView.setItemsCanFocus(false);

(2) define el elemento de la lista como

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center_vertical" android:paddingLeft="6dip" android:paddingRight="6dip" android:checkMark="?android:attr/listChoiceIndicatorMultiple" android:background="@drawable/txt_view_bg" />

Esto es lo mismo que android.R.layout.simple_list_item_multiple_choice excepto android:background="@drawable/txt_view_bg

(3) Y defina drawable txt_view_bg.xml como

<item android:drawable="@drawable/selected" android:state_checked="true" /> <item android:drawable="@drawable/not_selected" />

Nota: - La forma preferida de manejar la opción múltiple es hacer un seguimiento de las elecciones usted mismo al hacer clic en el elemento, en lugar de depender de su estado en la lista.


Es muy sencillo,

listViewRequests.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { **AppCompatCheckedTextView checkBox = (AppCompatCheckedTextView) view;** Log.i("CHECK",checkBox.isChecked()+""+checkBox.getText().toString());** } });



La mejor manera es tener una barra de acción contextual con listview en multiselect. Puede hacer que listview como multiselect use el siguiente código

listview.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE_MODAL);

Y ahora configure el oyente multichoice para Listview. Puede ver la implementación completa de la lista de selección multiselect en la lista de selección múltiple de Android.


No puede "seleccionar" varios elementos en un ListView . Puede usar CHOICE_MODE_MULTIPLE y verificar varios elementos en un ListView .


Para "actualizar" el mensaje de Toast después de desmarcar algunos elementos, simplemente ponga esta línea dentro del ciclo for:

if (sp.valueAt(i))

por lo que resulta:

for(int i=0;i<sp.size();i++) { if (sp.valueAt(i)) str+=names[sp.keyAt(i)]+","; }


y para obtenerlo:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.d(getLocalClassName(), "onItemClick(" + view + "," + position + "," + id + ")"); } });


ListActivity verificar la lógica de ListActivity acuerdo con lo que se necesita, podría ser la mejor manera de no perder demasiado tiempo

link

developer.android


Paso 1: configura Adaptador a tu vista de lista.

listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, GENRES));

Paso 2: configure el modo de elección para la vista de lista. La segunda línea del código siguiente representa qué casilla de verificación debe marcarse.

listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); listView.setItemChecked(2, true); listView.setOnItemClickListener(this); private static String[] GENRES = new String[] { "Action", "Adventure", "Animation", "Children", "Comedy", "Documentary", "Drama", "Foreign", "History", "Independent", "Romance", "Sci-Fi", "Television", "Thriller" };

Paso 3: las vistas comprobadas se devuelven en SparseBooleanArray, por lo que puede usar el siguiente código para obtener la clave o los valores. La muestra siguiente simplemente muestra los nombres seleccionados en una sola Cadena.

@Override public void onItemClick(AdapterView<?> adapter, View arg1, int arg2, long arg3) { SparseBooleanArray sp=getListView().getCheckedItemPositions(); String str=""; for(int i=0;i<sp.size();i++) { str+=GENRES[sp.keyAt(i)]+","; } Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show(); }