Android de,restful web servis den gelen veriyi asyntask ile alıp(bunu yapabiliyorum)json ile aldığım değeri spinner'a atamam gerekiyor.Spinner a atama işlemini asyntask dopost metodu için de yapıcam.Nasıl yapabilirim.?Yani dopost metodunun içinde spinner en bastan güncelleneek.

soruldu: 09 Ara '13, 06:44

kt%C3%BCceng's gravatar image

ktüceng
26558
cevap kabul oranı: 0%


AsyncTask temelde 3 kısımdan oluşur.

  • onPreExecute()
  • doInBackground()
  • onPostExecute()

onPreExecute arka plan işlemi başlamadan önce uygulamanın ana thread’inde yapılacak güncellemeler ve kullanıcıyı bilgilendirmek için kullanılır. Mesela uzun sürecek bir işlem var ise kullanıcıya bir “Yükleniyor…” mesajı göstermek için kullanılır.

doInBackground arka planda yapılacak işlemlerin kodlandığı kısımdır. Bu kısımda dikkat edilmesi gereken önemli bir nokta var, burada uygulamanın ana thread’ine erişmek, arayüzü güncellemek gibi işlemler yapılamıyor. Bu kısımda sadece arka planda ne iş yapılacaksa o yapılır.

onPostExecute arka planda yapılan iş tamamlandıktan sonra çalışır. Bu kısımda uzun sürecek işlemimiz bitmiştir ve ana thread’i işlem sonucuna göre güncelleyebilir kullanıcıya gösterilmek istenenler gösterilebilir.

permanent link

cevaplandı: 09 Ara '13, 07:40

bzkrtmert's gravatar image

bzkrtmert
53661015
cevap kabul oranı: 17%

Ben bunu biliyorum sadece onpostexecute metodua gelen sonucu spinner a atamak istiyorum.Fonksiyon içerisinde yaz diyorsun da json veriyi bir kere de fonksiyon içinde mi alıyım almadan fonksiyon içinde spinner a ne atadın?

(09 Ara '13, 07:44) ktüceng kt%C3%BCceng's gravatar image

ilk gönderdiğim koda baktın mı ? orada anlamadığın yer neresi ?

(09 Ara '13, 07:48) bzkrtmert bzkrtmert's gravatar image

Spiner' a neyi eklediğin.json ile yeniden veri mi aldın web service den

(09 Ara '13, 08:30) ktüceng kt%C3%BCceng's gravatar image

onPostExecute metotunda spinner i dolduracağın metotu çağır. örneğin benim bir projemden sana örnek kod verecek olursam. displayHastane = metot result = stringe convert edilmiş servisten dönen json veri

onPostExecute metotunda displayHastane(result) çalıştır.

private void displayHastane(String response) {

    JSONObject responseObj = null;
    int dftIndex = 0;

    ArrayList<HastaneModel> hastaneArrayListObje = new ArrayList<HastaneModel>();
    JSONObject obj;

    try {

        responseObj = new JSONObject(response);
        JSONArray hastaneListObj = responseObj.getJSONArray("GetHospitalsResult");

        String[] hastane_array = new String[hastaneListObj.length()];

        for (int i = 0; i < hastaneListObj.length(); i++) {

            // HastaneModel obje dolduruluyor
            obj = hastaneListObj.getJSONObject(i);
            HastaneModel hastaneObje = new HastaneModel(obj.getString("Kodu"), obj.getString("Adi"));
            hastaneArrayListObje.add(hastaneObje);

            // spinner için array dolduruluyor
            hastane_array[i] = hastaneListObj.getJSONObject(i).getString("Adi");

        }

        Spinner sp = (Spinner) findViewById(R.id.spinnerHastane);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, hastane_array);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp.setAdapter(adapter);
        OnItemSelectedListener spinnerListener = new myOnItemSelectedListener(this);
        sp.setOnItemSelectedListener(spinnerListener);
        sp.setSelection(dftIndex);

    } catch (JSONException e) {
        e.printStackTrace();
    } catch (NullPointerException exception) {

    }

}
permanent link

cevaplandı: 09 Ara '13, 07:04

bzkrtmert's gravatar image

bzkrtmert
53661015
cevap kabul oranı: 17%

Yalnız bu json veriyi ben doınbackground'da yapıyorum.Fonksiyonun için demi json veriyi web servisten alayım.

(09 Ara '13, 07:10) ktüceng kt%C3%BCceng's gravatar image

Sen daha biraz Asynctask' ı incelemen lazım. Ekranda yaptıracağın işlemleri onPostExecute metotunda yaptırabilirsin. bu yüzden orada servisden dönen veriyi yorumlaman gerekiyor.

(09 Ara '13, 07:16) bzkrtmert bzkrtmert's gravatar image

evet bende sana onun cevabını verdim.

(09 Ara '13, 07:32) bzkrtmert bzkrtmert's gravatar image

Bu konu hakkında önerebileceğin bir site var mı acaba?

(09 Ara '13, 07:33) ktüceng kt%C3%BCceng's gravatar image

Bu metodun içinde web servisten veri aldın mı acaba?Eğer web servisten veriyi bu metodun içinde alıyorsan doınbackground da ne yapıyorsun?onu smerak ettim ben.

(09 Ara '13, 07:34) ktüceng kt%C3%BCceng's gravatar image

displayHastane(String response) metotta gelen veri String ben bunu json a convert ediyorum. Sen istersen gelen veriyi direk json olarak alabilirsin. json a convert tettikten sonra hastane objemi dolduruyorum. hastanelerin kodunu ve adını alıyorum. daha sonra bir string array a hastanenin adı bilgilerini dolduruyorum. hastane_array[i] = hastaneListObj.getJSONObject(i).getString("Adi"); daha sonra spinnera array adapter ile dolduruyorum. Spinner sp = (Spinner) findViewById(R.id.spinnerHastane); ArrayAdapter<string> adapter = new ArrayAdapter<string>(this,android.R.layout.simple_spinner_item, hastane_array);

permanent link

cevaplandı: 09 Ara '13, 08:39

bzkrtmert's gravatar image

bzkrtmert
53661015
cevap kabul oranı: 17%

Tesekkür ederim.

(09 Ara '13, 08:41) ktüceng kt%C3%BCceng's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×818
×71
×6

Soruldu: 09 Ara '13, 06:44

Görüntüleme: 1,091 kez

Son güncelleme: 09 Ara '13, 08:41

powered by BitNami OSQA