fbpx

Course Content

Total learning: 10 lessons Time: 2 hours

Отображение ответа на экране

В этом уроке создадим верстку для отображения списка фильмов. В итоге у вас получится

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