Soonil tarafından açıklandığı gibi android.app.Application alt sınıfını kullanarak Android uygulamamdaki Etkinlikler arasında gereken genel bir değişkeni saklıyorum (How to declare global variables in Android?).Statik olmayan yönteme statik başvuru yapamazsınız (Android getApplicationContext())
yaklaşım şu şekildedir:
class MyApp extends Application {
private String myState;
public String getState(){
return myState;
}
public void setState(String s){
myState = s;
}
}
class Blah extends Activity {
@Override
public void onCreate(Bundle b){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}
Bu noktaya kadar, bu yaklaşım benim Faaliyetleri herhangi birinden küresel değişkeni erişmek için ince çalıştı. Ama bugün aynı yaklaşımı kullanarak, aşağıdaki hata var:
Cannot make a static reference to the non-static method getApplicationContext()
from the type ContextWrapper
önce gelen temel fark yeni Aktivite bir Parça (SherlockFragmentActivity, kesin olarak) aslında olmasıdır.
Daha önce sahip olduğum gibi, appState'e neden erişemediğim hakkında herhangi bir fikir var mı?
Çok teşekkürler.
DÜZENLEME: İyi yakalamak Matt B. başka bir sınıfın içinde olduğu Aslında getApplicationContext çağırıyorum yeri() çıkıyor. İşte çağıran nokta: aşağıda belirtildiği gibi ben sadece iyi çalışması gerekir
MyApp appState = ((MyApp)getActivity().getApplicationContext());
Can Etkinliğinizde, SherlockFragmentActivity'i genişleten gerçek kodu görüyoruz. DÜZENLEME: Uyguladığım appState = ((Uygulama) getApplicationContext()); 'SherlockFragmentActivity' içinde denedim ve sadece iyi derler. –
Bu kod örneğinde, bu yönteme statik bir başvuru yapmaya çalıştığınız yeri göremiyorum. Doğru satırları gönderdiğinizden emin misiniz? –
daha sonra cevabı doğru olarak işaretleyebilir misiniz? – vanleeuwenbram