2017-07-20 4 views
1

私は5 coloumsと複数の(修正値ではない)行のGridLayoutを使用しています。追加ボタンを使用してグリッドに値を含む行を追加することができます(値は現在はハッシュマップでハードコードされています)。 各行には、最初のセルに削除ボタンがあります。 削除ボタンを押すと、完全な行が削除されるはずですが、他の行も保持されるはずです。 これを行う方法の提案はありますか?gridlayoutから1行を削除します

+0

これは何ですか? https://android--code.blogspot.de/2015/08/android-gridview-add-item.html – noongiya95

+0

追加は問題ではなく、既に実装されています。 gridlayoutから行を削除することは問題です – WeSt

+0

私にとっては、あなたが望むものを構築するための適切なツールではないようです。行を制御するだけで、データセットに単純なリストを使用しない理由RecyclerViewは、物事をより簡単にするでしょうか? – noongiya95

答えて

1

あなたのHashMapのから特定のデータセットを削除(またはdymanicコンテンツのためのアダプターで別のマップを使用)してから呼び出すことができます。

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

特定の行を削除する必要があります。

+0

これは良いアイデアのように聞こえるが、これはgridlayotの最後の要素を削除するだけだろうか?途中でアイテムを削除することが可能です。 – WeSt

+0

データセットから正しいデータを削除するだけで済みます。だから、あなたのデータのリストをあなたのアダプタに入れておいて3行目を削除し、リストの3番目の項目を削除して 'notifyDataSetChanged()'を呼び出すと – noongiya95

+0

これは助けになりました。ありがとう – WeSt

1

実装することなく説明するのは難しいですが、試してみます。だからActivity/FragmentRecyclerViewがあるとします。あなたの要素がList/Map/Anythingである私たちのAdapterがあります。私たちが必要とするのは、削除ボタンとそれは私が推測するクリックリスナです。ボタンをクリックすると、アクティビティ/フラグメントからアダプタ内のメソッドが呼び出され、List/Map/Anythingアイテムが削除されます。この方法では、アダプタのnotifyDataSetChanged()が再度呼び出され、グリッドが正しく更新されます。

関連する問題