2016-07-03 9 views
1

私はウィジェットに関するリストビュー情報に追加する:ListViewでImageViewを正しく非表示にするにはどうすればいいですか?

public class Widget { 
    String w_type; 
    String title; 
    String desc; 
    String img; 
    //.... 
} 

私はそれが空の場合のimgフィールドがリストビューで、空と非表示ImageViewのない場合は、リストビューで画像を表示したいです。リストビューのための私のアダプターからGetViewメソッドの現在のコードがあります:

public View getView(int i, View someView, ViewGroup arg2) { 
    LayoutInflater inflater = LayoutInflater.from(context); 
    if (someView == null) { 
     someView = inflater.inflate(R.layout.widgets_list, arg2, false); 
    } 

    ImageView img = (ImageView) someView.findViewById(R.id.pic); 

    if (!img_url.equals("")){ 
     Picasso.with(context).load(img_url).into(img); 
     } 
     else { 
      img.setVisibility(View.GONE); 
     } 

    return someView; 
} 

それはあまりにも空でないときのimgフィールドは時々空ですが、ときそれはImageViewのではないだけを隠します。どうすれば修正できますか?

+0

ここで、あなたのimg_urlを設定しますか?あなたはそのコードを提供できますか?リスト内のすべてのアイテムに異なるimg_urlがありますか? – babadaba

答えて

1

で 私はあなたのImageViewのはまだ再びimg.setVisibility(View.GONE);これだけ再ショーにそれをする以前の呼び出しから隠されていると思います。

if (!img_url.equals("")){ 
     Picasso.with(context).load(img_url).into(img); 
      img.setVisibility(View.VISIBLE); 
     } 
     else { 
      img.setVisibility(View.GONE); 
     } 
0

通常、Picassoはスレッドを作成してイメージをロードします。一番簡単な方法ですが、その代わりにいくつかのコールバック関数を作ることができます。ここ

Picasso.with(context) 
     .load(imageUrl) 
     .into(img, new com.squareup.picasso.Callback() { 
        @Override 
        public void onSuccess() { 

        } 

        @Override 
        public void onError() { 
        } 
       }); 
関連する問題