Ich habe ein Problem Ich kann nicht auf die mGirlsLisl
Variable zugreifen. Ich denke, ist ein Problem im Versuch zu fangen.Zugriff auf Instanzvariable
Der Code funktioniert gut, aber onCreate
Methode kann mGirlsList
Variable nicht zugreifen. Bitte überprüfen Sie den Code public class MainActivity erweitert AppCompatActivity {
private ArrayList<Girl> mGirlsList;
private GirlClient girlClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
fetchGirls("girls.json");
Log.i("LOG", String.valueOf(mGirlsList.size())); // ERROR can't get size
}
private void fetchGirls(String query) {
girlClient = new GirlClient();
String url = girlClient.getApiUrl(query);
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonData = response.body().string();
try {
mGirlsList = girlClient.getGirlsListFromJson(jsonData);
Log.i("LOG", String.valueOf(mGirlsList.size())); // 5 OK
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
Was ist der Fehler, den Sie bekommen, wenn Sie versuchen, darauf zuzugreifen? NullPointerException? –
Methode 'onResponse()' von 'Callback' wird asynchron ausgeführt, nachdem eine Antwort vom Server erhalten wurde. In 'fetchGirls' haben Sie die Klasse' Callback' erstellt, aber nicht 'onResponse'. So 'mGirlsList' noch nicht initialisiert –
@ShamasS ja es ist ein Verursacht von: java.lang.NullPointerException – Suzy21