2017-07-20 1 views
1

J'utilise un GridLayout avec 5 coloums et plusieurs lignes (pas une valeur fixe). Il est possible d'ajouter plus de lignes avec des valeurs à la grille par un bouton d'ajout (les valeurs sont codées en dur dans hashmap pour l'instant). Chaque ligne contient un bouton de suppression dans la première cellule. Maintenant, je veux mettre en œuvre, que si vous cliquez sur le bouton Supprimer, la ligne complète devrait être supprimée, mais d'autres lignes devraient rester. Des propositions comment faire cela?Supprimer une ligne de gridlayout

+0

Vous cherchez quelque chose comme ça? https://android--code.blogspot.de/2015/08/android-gridview-add-item.html – noongiya95

+0

Ajouter n'est pas le problème, c'est déjà implémenté. Supprimer une ligne de la grille est le problème – WeSt

+0

Pour moi, il semble que ce ne soit pas vraiment les bons outils pour construire ce que vous voulez. Si vous ne contrôlez que les lignes, pourquoi n'utilisez-vous pas une liste simple pour votre ensemble de données, par exemple? un RecyclerView, qui rendrait les choses plus simples? – noongiya95

Répondre

1

Vous pouvez supprimer l'ensemble de données spécifiques de votre HashMap (ou utilisez une autre carte dans l'adaptateur pour le contenu dymanic) puis appelez:

grid.setRowCount(grid.getRowCount() - 1); 
grid.notifyDataSetChanged(); 

Cela devrait supprimer la ligne spécifique.

+0

Cela semble être une bonne idée, mais cela supprimerait simplement le dernier élément de la grille, correct? Il devrait être possible de supprimer des éléments quelque part au milieu – WeSt

+0

Il vous suffit de supprimer les données correctes de votre jeu de données. Donc, si vous aviez une liste avec vos données dans votre adaptateur et la ligne 3 devrait être supprimée, alors supprimez le 3ème élément de votre liste et appelez 'notifyDataSetChanged()' – noongiya95

+0

cela m'a aidé, merci – WeSt

1

Il est difficile d'expliquer sans avoir votre implémentation, mais je vais essayer. Alors supposons que nous ayons notre Activity/Fragment avec un RecyclerView. Nous avons notre Adapter qui détient un List/Map/Anything avec vos éléments dedans. Ce dont nous avons besoin est le bouton de suppression et c'est l'écouteur de clic je devine. Lorsque vous cliquez sur le bouton, vous appelez une méthode de votre adaptateur à partir de l'activité/fragment, qui itère votre List/Map/Anything en supprimant les éléments. La méthode appelle à nouveau notifyDataSetChanged() sur l'adaptateur et la grille doit être mise à jour correctement.