こんにちは私は自分のカスタムクラスでgetterに問題がありますが、毎回nullを返す理由はわかりません。私はエラーがなければ、サーバーからの応答の後に値を設定しています。私がデバッグしている間は、サーバーからの応答はOKで、オブジェクトの新しいインスタンスが作成されているのがわかりますが、私のアクティビティで取得しようとするとnullがあります。ここにいくつかのコード行が問題です(私の意見では)。私のカスタムクラスからgetterの使用中にNullPointerExceptionが発生する
方法:任意の助け
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_movie_list);
movieListView = (ListView) findViewById(R.id.movieListView);
String movie = getIntent().getStringExtra(TAG);
presenter = new Presenter(this,movie);
presenter.responseFromServer();
item=presenter.getItemAdapter();
movieListView.setAdapter(presenter.getItemAdapter());
presenter.getItemAdapter().notifyDataSetChanged();
presenter.getProgressDialog().dismiss();
}
ありがとう:ここ
public void responseFromServer(){
showProgressDialog();
Retrofit retrofit = new Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();
TitleInterface titleInterface = retrofit.create(TitleInterface.class);
Call<MovieResponse> call = titleInterface.getMovie(API_KEY,movie);
call.enqueue(new Callback<MovieResponse>() {
@Override
public void onResponse(Call<MovieResponse> call, Response<MovieResponse> response) {
List<Movie> movieList = response.body().getMovieList();
ItemAdapter itemAdapter = new ItemAdapter(context.getApplicationContext(),generateData(movieList));
setItemAdapter(itemAdapter);
}
@Override
public void onFailure(Call<MovieResponse> call, Throwable t) {
Toast.makeText(context, "ERROR", Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
}
});
}
とは、私の活動です。
あなたの呼び出しは非同期です。取得しようとするまで値は設定されません。 – njzk2
これを解決する方法は? – FinalDestination
カスタムクラスとは何ですか?サービス? – Jaythaking