:私はそれらをマージしようとしていた場合
private ArrayList<CategoryDetails> categoryDetailsArrayList = new ArrayList<>();
private ArrayList<VideoItem> mVideoItems = new ArrayList<>();
/**
* API parsing and other coding stuff
**/
categoryDetailsArrayList.addAll(mVideoItems);
adapter = new Adapter(this, categoryDetailsArrayList)
、私はエラーを取得していますか?
私は以下を行います。
1)のListViewItemためのインタフェース作成:
public interface MyListViewItem {}
2))、すなわち
public class CategoryDetails implements MyListViewItem {...}
public class VideoItem implements MyListViewItem {...}
3、CategoryDetails
及びVideoItem
にこのインタフェースを実装しArrayAdapter<MyListViewItem>
4を作成した)が含まれるArrayList<MyListViewItem>
に合格すべてのタイプの全商品
5)は、複数のモデルタイプのアダプタを作成して使用する方法を説明しています。それはhere
内部アダプタのコード、あなたがモデルからいくつかの情報にアクセスしたいとき、あなたはすなわち、クラス名を確認してから、対応する型にキャストする必要がありますが示されているように:
MyListViewItem item = getItem(position);
if (item instanceof CategoryDetails) {
CategoryDetails details = (CategoryDetails) item;
// do stuff
} else if (item instanceof VideoItem) {... //you got idea }
はそれが役に立てば幸い
オブジェクトの両方のパラメータを含むモデルを作成しないのはなぜですか? – Ricardo
は、両方のarraylistが異なるタイプを持っているためです。 –
@RicardoBarroca、はい私はそれについても考えましたが、結果をランダムにリストに表示したいとは思っていません。 2〜3回の通常の投稿の後に動画フィードを表示することを意味します。 – Devraj