package br.com.nglauber.starwarsjavarx; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import br.com.nglauber.starwarsjavarx.model.Movie; import br.com.nglauber.starwarsjavarx.model.api.StarWarsApiLambda; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action0; import rx.functions.Action1; import rx.schedulers.Schedulers; public class MainActivity extends AppCompatActivity { ListView listView; ArrayAdapter<String> movieAdapter; ArrayList<String> movies = new ArrayList<>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); listView = new ListView(this); setContentView(listView); movieAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, movies); listView.setAdapter(movieAdapter); StarWarsApiLambda api = new StarWarsApiLambda(); api.loadMoviesFull() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<Movie>() { @Override public void call(Movie movie) { movies.add(movie.title + " - " + movie.episodeId + "\n " + movie.characters.toString()); } }, new Action1<Throwable>() { @Override public void call(Throwable throwable) { throwable.printStackTrace(); } }, new Action0() { @Override public void call() { movieAdapter.notifyDataSetChanged(); } }); } }