2016-05-08 9 views
0

いくつかのアクティビティを通して、Androidアプリケーションで同様の拡張可能なリストビューをいくつかご希望です。彼らはすべて同じコンテンツを持っていますが、異なるデザインを使用しています。例えば、ボタンの中にはボタンがあり、そうでないものもあります。androidアプリケーションで同様のカスタム展開可能なリストビュー

を各セルの背景色を除いて共有する3つの展開可能なリストビューが必要です。

とにかく、リストビューごとに一意のアダプタを持つことは、すべて非常に似ているように、悪い設計のように思えます。私は抽象アダプタを作成することを考えていたし、すべてのリストビューのためにそれを拡張するよりも、うまくいくだろうか?他のアプローチはありますか?

ありがとうございます。

+0

"各セルの背景色を除いてすべてを共有する3つの展開可能なリストビューが必要です。" - あなたのレイアウトリソースだけのような塊は異なっています。 3つすべてのリストビューに1つのアダプタを使用し、コンストラクタでレイアウトリソースを渡します。 – zyamys

答えて

1

リストビューごとにユニークなアダプタを使用することは、すべて非常に似通っているため、設計上の慣れていないようです。

これは間違いありません。重複したコードは、ほとんど常に悪いコードデザインの兆候です。

私は抽象アダプタを作成し、それをすべてのリストビューに対して拡張することを考えていましたが、それは機能しますか?

はい。

その他の方法はありますか?

はい。例えば。異なるバックグラウンドをサポートするアダプタを使用する場合、アダプタはコンストラクタパラメータとして背景リソース/色を使用する必要があります。このアプローチは、マイナーな変更に適しています。非拡張性と拡張可能なリストビューをいくつか保有したい場合、私は継承アプローチを好むでしょう。


問題は、私のリストビューの一部が拡張可能になるということですので、私はリサイクラービューを使用することができませんでした。

リサイクルビューは、リストビューよりも優れたデザインです。拡張可能なものを作成することはあまり難しくありません。Expandable list with RecyclerView?を参照してください。

+0

ありがとう!それは私の最初のアプリであり、大量のデータを扱う必要はありませんが、私は基本(リストビュー)に固執しますが、私はRecyclerViewが一般的により良い設計選択であることを確かめます –

関連する問題