0
変数がmGirlsLisl
にアクセスできません。 私はtry catchの問題だと思います。インスタンス変数にアクセスできません
コードは正常に動作しますが、onCreate
メソッドはアクセスできませんmGirlsList
変数です。 コード パブリッククラスMainActivityをご確認ください{
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();
}
}
});
}
アクセスしようとすると、どのようなエラーが発生しますか? NullPointerException? –
メソッド 'callback'の' onResponse() 'はサーバからの応答を取得した後に非同期に実行されます。 'fetchGirls'ではクラス' Callback'を作成しましたが、 'onResponse'は呼び出さなかった。だから 'mGirlsList'はまだ初期化されていません –
@ShamasSはい原因a原因:java.lang.NullPointerException – Suzy21