folder Tahribat.com Forumları
linefolder Mobil Programlama
linefolder Activityler Arası Veri Set Etme.



Activityler Arası Veri Set Etme.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    Merhaba Müridcanlar.

    Konu başlığı ne denli açıklayıcı oldu bilmiyorum lakin özetlemem gerekirse;

    1 activity 1 class dosyam var;

    vesselsearchdetails - Activity
    wsVesselDetails - class
     

    Yapmak istediğim wsVesselDetails classıma iş yaptırıp bu işin sonucununda aldığım string[] veriyi vesselsearchdetails activity deki bir textview e yazdırmak. Bu iki dosyayı ayırmasaydım vesselsearchdetails activitiysinin içine wsVesselDetails classını yazsaydım activitydeki textview kontrolüne erişebilirdim. lakin ayrıdığımda erişemiyorum. 

    Aşağıdaki gibi bir çözüm üretmeye çalıştım ters mantık ile wsVesselDetails içinde vesselsearchdetails create edip FindViewById ile kontrole eriştim veriyi set ettim. Hiç hata yok. Ancak runtime da aşağıdaki hatayı alıyorum access vermiyor sanırım.


     


    Paslanmış bir uygulama geliştirici.. #AnalistŞart
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    exception dan anladığım kadarıyla oluşturulan thread asenkron çalışıyor. sen ise sonucun oluşturulmasını beklemeden okumaya çalışıyorsun.. 

    şöyle düşün..

    1 den 10000 bine kadar olan sayıları topluyorum ve bunun sonucunu döndereceğim...

    saymaya başlayan metodu çalıştırdım.. o sayarken, benim thread asenkron çalıştğı için onu beklemeden diğeer işleme geçiyor. diğr işlem nedir, bu sonucu ekrana basmak..

    toplama metodu çalıştıktan sonra hemen ekrana basma metodu çalışıyor ama ekrana basacak bir değer yok çünkü henüz toplama metodu bitmiş değil. dolayısıyla null hatası verecek ki senin hata da bu şekilde.

    javada bu olay nasıl oluyor hatırlamıyorum ama bu thradin completed eventi olması gerekiyor. sen okuma işini orada yaparsan iş çözülmüş olur. çünkü benim verdiğim örnekteki toplama işlemi bittiğinde bu completed eventi çalışır ve ekrana basacak değerin oluşturulmuş oluyor o zaman da bir sıkıntı kalmaz

    bilmem anlatabildim mi


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    Hocam seni çok iyi anladım örneklendirme müthişti :) Sanırım sorunum dediğin gibi asenkron veri alma işlemi bitmediği için patlıyor.

    Ancak şöyle bir ekleme yapayım. Android de bir thread kullanımı var bir de muadili asyntask kullanımı var. ikiside aynı işi yapıyor farkı nedir açıkcası bilmiyorum. 

    asynctask da şöyle bir yapı var. onPreExecute çalışır ardından doInBackground çalışır ki arka planda yapmak istediğin asenkron iş burada yapılır.  en son onPostExecute çalışır ki UI işlemlerini burada yaparsın. 

    Böyle bir yapı var hocam. Yaptığım ters instance alma doğru bir yaklaşım mıdır sence? Ya da bu ters instance ı almadan nasıl diğer activiy classına erişebilirim sence?


    Paslanmış bir uygulama geliştirici.. #AnalistŞart
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    smok3
    smok3's avatar
    Kayıt Tarihi: 09/Nisan/2007
    Erkek
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    1.5 yıldan fazladır android ile ilgilenmedim hocam o yüzden çoğu şeyi hatırlamıyorum :))

    şimdi soruna gelirsek..

    http://developer.android.com/reference/android/os/AsyncTask.html

     

     private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
         protected Long doInBackground(URL... urls) {
             int count = urls.length;
             long totalSize = 0;
             for (int i = 0; i < count; i++) {
                 totalSize += Downloader.downloadFile(urls[i]);
                 publishProgress((int) ((i / (float) count) * 100));
                 // Escape early if cancel() is called
                 if (isCancelled()) break;
             }
             return totalSize;
         }
    
         protected void onProgressUpdate(Integer... progress) {
             setProgressPercent(progress[0]);
         }
    
         protected void onPostExecute(Long result) {
             showDialog("Downloaded " + result + " bytes");
         }
     }
    

     

     

    ve bu download metodunu çalıştırmak için

     new DownloadFilesTask().execute(url1, url2, url3);

     

    şimdi üstteki kodlarda görüldüğü gibi;

    1- doinbackground bizim işe başlama eventimiz. yani thread içerisinde çalıştırmak istediğin kodu buraya yazarsın..

    2- eğer işlemin her aşamasını bir yerlerde göstermek istersen ( yüzdelik tutuma, progressbar kullanma gibi) bu işleri de onprogressupdate de yaparsın. yüzdeyi almak için de progress parametresinden 0. indexli veri bize yüzdeliği verir.. 

    3- doinbackground içindeki işlem bittikten sonra onpostexecute eventi çalışır bu da işlemin tamamlanmış olduğunu söyler bize. 

     

    işte senin thread de işlediğin veriyi kullanabileceğin nokta onpostexecute eventi olmalı. 

    koduna iyice baktım ki sen de zaten dediğim şekilde yapmışsın olayı ama ortada bi sıkıntı var. 

    orda bir null değer almışsın. onpostexecute deki kodları commente al. sonra resultu ekrana yazdırmaya çalış. bak bakalım doğru olarak gelmiş mi?

    eğer onda sıkıntı yok ise adım adım kodlarını yaz. bir an da yapma ki hatanın nerede kaynaklandığını bulabilesin. 

    bir ihtimal de txtresult a erişim izni vermemiş de olabilir. ama dediğim gibi kodları parça parça ekle ve en son hatayı bul. deneme yanılma ile yapacaksın. IDE nin debug u gelişmiş olsaydı bunlara çok gerek kalmadan görebilirdin ama eclipse güzel bir ide değil (VS ile karşılaştırınca)


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    Smok3 sanırım sorumun cevabını buldum teşekkürler:) Eve gidince bakacağım.

    Unbalanced ilgine teşekkürler hocam:) detaylı anlatım için ayrıca saolasın. Dediğin gibi debug konusu eclipse de çok sıkıntı. android studyonun geliştirilmesini bekliyorum :)

     

    rappermcs tarafından 10/Eki/13 11:40 tarihinde düzenlenmiştir

    Paslanmış bir uygulama geliştirici.. #AnalistŞart
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    detCode
    detCode's avatar
    Kayıt Tarihi: 30/Kasım/2012
    Erkek

    hocam sorun çözülmüş bu arada bende başka bişey sorayım bu arayüz tasarımı nasıl illet bişeydir ya bir türlü istediğim gibi olmuyor, ekran çözünürlükleri değiştiğinde form kayıyor mala donüyor görüntü, nasıl yapıyorsunuz arayüzü tasarlamak için başka bişey filanmı kullanılıyor acaba ?eclipse deki tasarım işi rezalet değilmi yoksa ben bilmediğim içinmi öyle :D

    edit; birde hala google play den ürün satış işine çözüm yokmu ?

    detCode tarafından 09/Eki/13 17:32 tarihinde düzenlenmiştir

    Who is detCode?
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek

    Sorunu şu şekilde çözdüm müridcanlar.

    mutlaka ihtiyacı olan çıkar..

     


    Paslanmış bir uygulama geliştirici.. #AnalistŞart
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    @rappermcs, tebrikler hocam iyi ilerliyorsun. güzel bi mobil yazılım geliştirici olacaksın :)) devam et böyle azmini kırma. mümkünse bir kitaptan çalış.  busy coder's ... kitabı güzeldir, incelediğim en iyi kitaptı. 

    http://commonsware.com/Android/

    bununla devam edersen güzel olur. bir de wrox un kitabı vardı 2. versiyonunu da çıkarmışlardı, yazılımcılar arasında en çok beğenilen kitap olmuştu hatta bizimkiler türkçe çevirisini çıkartmışlar.. 

     

    @detcode, hocam droiddraw kullanabilirsin

    http://www.droiddraw.org/ 

    en son hangi versiyonları destekliyor bilmiyorum. çünkü android versiyonu değiştikçe bazı kontroller deprecate (yürürlükten kalkma) oluyor. o yüzden yazılımı geliştirmemişlerse son versiyon android sürümlerine uyumlu olmayabilir. ama kolay tasarım için ideal bir şeydi. tasarlıyorsun sonra xml kodunu alabiliyorsun. ister site üzerinden java applet şeklinde uygulamayı çalıştır, ister indir local olarak bilgisayarda çalıştır.


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    rappermcs
    rappermcs's avatar
    Kayıt Tarihi: 04/Ekim/2002
    Erkek
    unbalanced bunu yazdı

    @rappermcs, tebrikler hocam iyi ilerliyorsun. güzel bi mobil yazılım geliştirici olacaksın :)) devam et böyle azmini kırma. mümkünse bir kitaptan çalış.  busy coder's ... kitabı güzeldir, incelediğim en iyi kitaptı. 

    http://commonsware.com/Android/

    bununla devam edersen güzel olur. bir de wrox un kitabı vardı 2. versiyonunu da çıkarmışlardı, yazılımcılar arasında en çok beğenilen kitap olmuştu hatta bizimkiler türkçe çevirisini çıkartmışlar.. 

    Eyv. hocam gelecek mobil de :) Böyle paslaşarak yardımlaşarak çözeriz bu işi.

    Busy coder's duymamıştım içeriğine baktım oldukça detay var gibi görünüyor. Tavsiye için teşekkürler.


    Paslanmış bir uygulama geliştirici.. #AnalistŞart
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    detCode
    detCode's avatar
    Kayıt Tarihi: 30/Kasım/2012
    Erkek
    unbalanced bunu yazdı

    @detcode, hocam droiddraw kullanabilirsin

    http://www.droiddraw.org/ 

    en son hangi versiyonları destekliyor bilmiyorum. çünkü android versiyonu değiştikçe bazı kontroller deprecate (yürürlükten kalkma) oluyor. o yüzden yazılımı geliştirmemişlerse son versiyon android sürümlerine uyumlu olmayabilir. ama kolay tasarım için ideal bir şeydi. tasarlıyorsun sonra xml kodunu alabiliyorsun. ister site üzerinden java applet şeklinde uygulamayı çalıştır, ister indir local olarak bilgisayarda çalıştır.

    eyv. hocam araştırıyorum


    Who is detCode?
Toplam Hit: 1641 Toplam Mesaj: 13