Course Content
-
Подготовка
-
Учимся работать с Retrofit и GSON
-
Всё вместе. Создание UI и отображение ответа от сервера
-
Использование RxJava 2.0 для создания вызовов В этом разделе вы научитесь использовать RxJava 2.0 для создания вызовов к серверу и получения ответа
Отображение ответа на экране
В этом уроке создадим верстку для отображения списка фильмов. В итоге у вас получится

Добавление RecyclerView к проекту
Перед использованием RecyclerView не забудьте добавить нужную библиотеку в проект:
implementation "androidx.recyclerview:recyclerview:1.1.0"
Создание верстки главного экрана
В качестве контейнера для отображения ленты будет использоваться RecyclerView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/movies_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
</RelativeLayout>
Отображение данных в ленте
Теперь, в методе onResponse мы можем обновить элементы и отобразить их
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Добавляем recyclerView
val recyclerView = findViewById<RecyclerView>(R.id.movies_recycler_view)
recyclerView.layoutManager = LinearLayoutManager(this)
val call = MovieApiClient.apiClient.getTopRatedMovies(API_KEY, "ru")
call.enqueue(object : Callback<MoviesResponse> {
override fun onResponse(
call: Call<MoviesResponse>,
response: Response<MoviesResponse>
) {
val movies = response.body()!!.results
// Передаем результат в adapter и отображаем элементы
recyclerView.adapter = MoviesAdapter(movies, R.layout.list_item_movie)
}
override fun onFailure(call: Call<MoviesResponse>, t: Throwable) {
// Log error here since request failed
Log.e(TAG, t.toString())
}
})
}
}
Ну вот и все, после успешного получения фильмов мы можем отобразить данные, используя MoviesAdapter. Понравился материал? Подписывайся на телеграм-канал для получения полезных материалов. Код проекта можно получить по ссылке