2016-06-26 6 views
0

サーバーから取得した ごとに「x」秒ごとに更新されるImageViewがあります。ImageViewは更新しません

最初に画像を更新すると正しく変更されます。

しかし、次の画像はもう更新されていません。

最初のイメージはメモリに保存されていますか、削除しますか?

コード:バックグラウンドの優先順位を持つスレッドで更新を行っている

public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 
     if(convertView ==null) 
     { 
      convertView = mInflater.inflate(R.layout.onlinelist,parent,false); 
      holder = new ViewHolder(); 
      holder.tv = (TextView) convertView.findViewById(R.id.textView1); 
      holderProfile = (ImageView) convertView.findViewById(R.id.usernameProfile); 
      convertView.setTag(holder); 
     } 
     else 
     { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     holder.tv.setText(usersInRange.get(position)); 
    String[] split = usersInRange.get(position).split(" "); 
    final String firstSubString = split[0]; 
    AsyncHttpClient client = new AsyncHttpClient(); 
    client.get("xxxxxxxxx.com/uploads/" + firstSubString + ".jpeg", null, new AsyncHttpResponseHandler() { 
      @Override 
      public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
        final Bitmap image = BitmapFactory.decodeByteArray(responseBody, 0, responseBody.length); 
        holderProfile.setImageBitmap(image); 
        holderProfile.invalidate(); 


      } 
      @Override 
      public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 

      } 

    }); 

    return convertView; 
} 
+0

あなたはImageViewのコードを更新共有することができます......あなたは後に、この機能を呼び出しているところある時に –

+0

彼はリストビューにいます、私は質問を更新します。リストビューを更新するための –

+0

私はnotifyDataSetChanged()を呼び出します。 –

答えて

0

....

あなたは、メインスレッド

変更し、このライン上でそれを実行しなければならないだろう

:これに

holderProfile.setImageBitmap(image); 

runOnUiThread(new Runnable() { 
     @Override public void run() { 
      holderProfile.setImageBitmap(image); 
     } 
}); 
0

イメージを設定した後に、imageViewのinvalidate()を試行してください。

+0

仕事をしない、無効にするのは何ですか? –

0

notifyDataSetChanged(); アダプターでurイメージを更新した後。

関連する問題