0

各カードに独自のレイアウト(card_in_list.xml)があるカードのリスト(cards_list.xml)があります。アイテムのリスト内の各アイテムのイメージを、作成時のフラグメント中に設定します。

カードには「ImageView」要素があります。この要素は、フラグメント作成中にリスト内の各カードごとに変更しようとしています。ここ

はレイアウトと断片のonCreateコードされ、おかげ

cards_list.xml

<ListView 
     android:id="@+id/cards_listview"/> 

card_in_list.xml

<ImageView 
     android:id="@+id/cardImage" 
     android:src="@drawable/visa"/> 

CardsListFragment.java

public view OnCreateView(LayoutInflater inflater, ViewGroup container, 
              Bundle savedInstanceState) { 

    // inflate cards list view 

    cardsListBinding binding = DataBindingUtil.inflate(inflater, 
           R.layout.cards_list, container, false); 
    binding.setSettingsService(this.settingsService); 
    View view = binding.getRoot(); 

    // use adapter to set card layout to list of cards 

    itemsList = (ListView) view.findViewById(R.id.cards_listview); 
    itemsListAdapter = new ListViewBindingAdapter<>(getActivity(), 
         R.layout.card_in_list, this, myService.getCards()); 

    // get image of each card item set a drawable to it 

    int i = 0; 
    for(Card c : myService().getCards()) { 
     View cardListView = itemsListAdapter.getView(i,null,itemsList); 
     ImageView iv = (ImageView)cardListView.findViewById(R.id.cardImage); 
     iv.setImageResource(R.drawable.discover); 
     i++; 
    } 

    itemsList.setAdapter(itemsListAdapter); 

    return view; 
} 

答えて

1

あなたが必要とするのは、必要な操作を行うListViewのカスタムアダプタです。 この回答はうまく説明していますCustom Adapter for List View

関連する問題