は//

2016-12-22 1 views
0
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if(convertView == null){ 
     convertView = inflater.inflate(resource, null); 
    } 

    ImageView imageView; 
    imageView = (ImageView) convertView.findViewById(R.id.ivGallery); 
    for(HospitalModel.Images images: hospitalModelList.get(position).getImagesList()) { 
     Glide.with(getContext()).load(images).into(imageView); 
    } 
    return convertView; 
} 

ListViewのGetViewメソッドのImageViewのにArrayListの 画像のURLを取得するにはどのように画像のURLを文字列 ArrayListに格納されています。私は配列リストのgetterとsetterを定義したが、それでも私はBaseAdapterから は//

オーバーライド同様にgetCount()メソッドをクラスを拡張し、動的にListView

+0

もっとコードが必要です。 'HospitalModelList'に' ArrayList 'オブジェクトを含むオブジェクトが含まれているようです。そうであれば、そのリストの画像を選択してロードする必要があるかどうかを判断するために何らかのロジックが必要です。 –

+0

はい、あなたは正しいと言っています。このArrayList には、画像URLがあります。私はリストビューの単一のimageViewにこれらの画像を動的に表示したい。 – Safiullah

答えて

0

ArrayList画像を表示するためのgetメソッドを使用する方法がわからないと、ここで合計を返しますあなたが見せなければならないイメージの量。

GlideのみのONE URL(forループを削除)のgetViewロードでは、getViewメソッドはN回呼び出され、getCountメソッドで返されたイメージの総数、positionパラメータgetViewメソッドでは0から(total-1)まで実行されます。

1つの位置を1つのURLにマップする必要があります。おそらく、URLを含むオブジェクトにアクセスする方法を変更する必要があります。

+0

listview/gridview/recyclerViewのベースアダプタにurls arraylistを使用してイメージを取得するソースコードを共有できますか?私は画像ギャラリーを作成したい。ありがとうたくさん – Safiullah

0

まず、ListViewの使用をやめ、RecyclerViewを使用します。

次に、getItemCount()をオーバーライドする必要があります。

int count = 0; 

for(HospitalModel.Images images: hospitalModelList.get(position).getImagesList()) { 
    count += images.size(); 
} 

をそれとも、おそらく望ましいものを、(画像URL文字列である)このアダプタは実際に気遣うだけで何にあなたのモデルオブジェクトをフラット化:あなたは、forループを使用して、これを行うことを選択することができます。このようなもの:

ArrayList<String> imageUrls = new ArrayList<String>(); 

for(HospitalModel model : hospitalModelList) { 
    imageUrls.addAll(model.getImagesList().getImageUrls()); 
} 

次に、代わりにimageUrls ArrayListをアダプタに渡します。モデルが更新されたとき(初期化されているか変更されているかにかかわらず)、これを平坦化する必要があります。その場合は、アダプタのnotify ...メソッドを使用します。

その後、getView(またはRecyclerViewを使用している場合はonBindViewHolder、これはお勧めです)内の単純なGlide.with(getContext()).load(imageUrls.get(position)).into(imageView);です。

+0

listview/gridview/recyclerViewのベースアダプタにurls arraylistを使ってイメージを取得するソースコードを共有できますか?私は画像ギャラリーを作成したい。ありがとうございます – Safiullah

+0

[こちらはチュートリアルの例です](http://www.androidhive.info/2016/04/android-glide-image-library-building-image-gallery-app/) 今後Googleはそのような要求を検索します。このリンクは、 "recyclerview image gallery"検索のトップ結果でした。そのコードは少なくともあなたを始めさせるべきです。それは最適ではありませんが、そのトリックを行います。 –