İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Mobil Programlama
Mobil Programlama

Threadlerle View update etme

GALP11.04.20171 cevap1.520 görüntüleme
2017'den beri1 mesaj
#1
Harita markerı için bir layout yarattım ve setInfoWindow adapter ile bu layout u inflate ettim.
final View v = getActivity().getLayoutInflater().inflate(R.layout.info_marker_window,null);


Daha sonra kullanıcı bu marker a tıkladığında bu viewda o marker ın bulunduğu konumun bilgilerini göstermek istiyorum, adı, adresi, fotografı, gibi. Ancak bu bilgileri serverdan çektigim için thread yardımı ile yapamam gerekiyor. Örneğin fotografı çekmek için async task kullandım şu şekilde;

new AsyncTask<Void,Void,Bitmap>(){
                            @Override
                            protected Bitmap doInBackground(Void... params) {
                                URL newurl = null;
                                try {
                                    newurl = new URL(customMarker.getVenue().getFoto());
                                } catch (MalformedURLException e) {
                                    e.printStackTrace();
                                }
                                Bitmap mIcon_val = null;
                                try {
                                    mIcon_val=BitmapFactory.decodeStream(newurl.openConnection().getInputStream());
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                                return mIcon_val;
                            }
                            @Override
                            protected void onPostExecute(final Bitmap bitmap) {
                              
                                        tvfoto.setImageBitmap(bitmap);
                                
                                super.onPostExecute(bitmap);
                            }}.execute();


Burda bitmap null dönmüyor,debug yaptığımda doğru değer döndürdüğünü görebiliyorm, fakat set işlemi gerçekleşmiyor.

Araştırdığım kadarı ile viewlarla thread kullanımlarında bir sorun var . runOnUIThread kullanmayı da denedim ancak sonuç elde edemedim. Viewları background işlemlerinde ile nasıl update edebilirim?
Cevaplar
2017'den beri5 mesaj
#2
Uzak sunucudan Fotograf okuma islemleri icin Glide veya Picasso kutuphanelerini tavsiye ederim.
Okuma islemini Async olarak senin icin hallediyor. AsyncTask kullanmana da gerek yok.

Glide.with(fragment)
.load(myUrl)
.into(imageView);

Glide examples:
Glide v4 : Getting Started

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.