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. Понравился материал? Подписывайся на телеграм-канал для получения полезных материалов. Код проекта можно получить по ссылке