Partage
  • Partager sur Facebook
  • Partager sur Twitter

récupérer la colonne cliquée ListView

    25 mars 2020 à 21:47:19

    Bonsoir à tous,

    J'aimerai savoir si il est possible de connaitre la colonne d'une ListView sur laquelle l'utilisateur à cliqué ?

    Actuellement j'ai mis en place une ListView que je complète à la volée avec une requête HTTP GET. J'ai réussi à gérer le click sur une ligne de ma ListVew mais impossible de connaitre la colonne qui a été cliqué. Je souhaite mettre cela en place dans le but de mettre en place un bouton EDIT et DELETE sur chaque ligne de la ListView.

    Voici comment j'initialise et rempli ma ListView :

    public void afficherEspaces(){
            String[] columns = new String[] { "_id", "nomEspaces", "edit" , "delete"};
            MatrixCursor matrixCursor= new MatrixCursor(columns);
            startManagingCursor(matrixCursor);
            for(Espace e:listEspaces){
                matrixCursor.addRow(new Object[] {e.getId(), e.getNomEspace(),"EDIT","DELETE"});
            }
            String[] from = new String[] {"nomEspaces", "edit","delete"};
            int[] to = new int[] { R.id.textBtnCol1, R.id.textBtnCol2,R.id.textBtnCol3};
            SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.row_item, matrixCursor, from, to, 0);
            lv = (ListView) findViewById(R.id.lv);
            lv.setAdapter(adapter);
    
            //Gestion des clics sur les lignes
            AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View container, int position, long id) {
                    System.out.println("click sur : " + id);
                    System.out.println("position : " + position);
                }
    
            };
            lv.setOnItemClickListener(itemClickListener);
        }

    le fichier xml sur lequel se trouve ma ListView :

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".ListEspaces">
    
        <TextView
            android:id="@+id/mesEspaces"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/mesEspaces"
            android:textSize="35dp"
            android:textColor="@color/black"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.498"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.133" />
    
        <ListView
            android:id="@+id/lv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="17dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/mesEspaces"
            app:layout_constraintVertical_bias="0.133"></ListView>
    
        <TextView
            android:id="@+id/login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="35dp"
            android:textColor="@color/black"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.038"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.0" />
    </androidx.constraintlayout.widget.ConstraintLayout>

    le fichier qui contient la définition de chaque ligne de ma ListView (Row_item.wml)

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="3"> <!-- nombre de colonnes -->
    
        <TextView
            android:id="@+id/textBtnCol1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textColor="@color/black"
            android:textSize="20dp"
            android:layout_weight="1"
            android:gravity="center"
            android:padding="4dp"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    
        <TextView
            android:id="@+id/textBtnCol2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:layout_weight="1"
            android:gravity="center"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    
        <TextView
            android:id="@+id/textBtnCol3"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:layout_weight="1"
            android:gravity="center"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    
    </LinearLayout>

    Merci d'avance pour votre aide,

    Bonne soirée,



    • Partager sur Facebook
    • Partager sur Twitter

    récupérer la colonne cliquée ListView

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown