Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
350
Tıklama
0
Öne Çıkarma
Android - Metod Boş Değer Döndürüyor
K
9 yıl
Binbaşı
Konu Sahibi

Arkadaşlar, ayrı bir class içinde tanımladığım metod boş değer döndürüyor.Nerde hata yaptığımı bulamadım
Anlayan birisi yardım edebilir mi ?

Class, manifest dosyasında tanımlaması mevcut
android:name=".MyApplication"


public class MyApplication extends Application {

private static MyApplication appInstance = null;

public static MyApplication getInstance() {
return appInstance;
}

@Override
public void onCreate() {
super.onCreate();

appInstance = this;

AndroidNetworking.initialize(getApplicationContext());

}

public String Getir(String link) {

final String[] ree = {"Burda kimse yok"};

AndroidNetworking.get(link)
.setUserAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0")
.setPriority(Priority.LOW)
.build()
.getAsString(new StringRequestListener() {

@Override
public void onResponse(String response) {

ree[0] = response.toString();
}

@Override
public void onError(ANError anError) {

ree[0] =anError.getMessage();
}

});

return ree[0];
}
}



MyApplication al= new MyApplication();
raw=al.Getir(url);
e1.setText(raw);




onResponse metodunda, ree değişkenine atama yapılmıyor

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi kreat -- 14 Aralık 2016; 20:15:38 >

< Bu ileti mobil sürüm kullanılarak atıldı >

D
9 yıl
Yüzbaşı

quote:

Orijinalden alıntı: kreat

Hocam türlü türlü şeyler denedim.Android studio yönergelerini takip ederek. Finali kaldırınca da böyle hata veriyor
Error:(70, 25) error: local variable ree is accessed from within inner class; needs to be declared final

edit: Hocam string'i geçici olarak ben doldurdum. onResponse kısmında atama yapmıyor.
edit2: komutları metod olmadan çalıştırdım. çalışıyor. ama değişkene atanan veri onResponse bloğundan dışarı çıkmıyor

public void onResponse(String response) {


ree = response.toString();
e1.setText(ree);



}


inner class'a actionlistener yapmışsın bu yüzden o local değişkenin final olması gerekiyor. Global olursa gerek yok tabiki. Ama o değişkenin orada olaması gerekiyor. Global olarak tanımlaman lazım.

Boş değer vermesinin nedenini callback yapmadığın için olduğunu tahmin ediyorum tam emin değilim. Biraz araştırdım ama ;

http://stackoverflow.com/questions/28120029/how-can-i-return-value-from-function-onresponse-of-volley
http://stackoverflow.com/questions/23833977/android-wait-for-volley-response-to-return


Bu mesaja 1 cevap geldi.
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.