• RecyclerView
  • 1-dars. Android ilovalari haqida ikkita asosiy tushuncha




    Download 1.09 Mb.
    bet14/19
    Sana14.03.2022
    Hajmi1.09 Mb.
    #18629
    1   ...   11   12   13   14   15   16   17   18   19
    Bog'liq
    Android Studio ma`ruzalar
    1-Obektga yo`nzltirilgan dasturity taminot, 6-Laboratoriya ishi (2), 123, Arifmetikaning asosiy teoremasi, Programmalıq injiniringge kirisiw paninen 3-ameliy jumisi, tranzistor (1), Документ Microsoft Word (8), 2.-7, 1-7, Denov tadbirkorlik va pedagogika instituti, 111, titul, Xorazm, 1- topshiriq
    RecyclerView-da ishlatiladigan adapter RecyclerView.Adapter abstrakt sinfidan meros bo'lib o'tadi. Ushbu sinf uchta usul(metod)ni aniqlaydi:

    • onCreateViewHolder: bitta ProgrammingLanguage ob'ekti uchun ma'lumotlarni saqlaydigan ViewHolder ob'ektini qaytaradi.

    • onBindViewHolder: ViewHolder ob'ektini ProgrammingLanguage ob'ektiga tegishli pozitsiyada bog'laydi.

    • getItemCount: ro'yxatdagi ob'ektlar sonini qaytaradi.

    Ma'lumotlarni saqlash uchun shu adapter sinfida list_item.xml - da aniqlangan elementlardan foydalanadigan statik ViewHolder sinfini aniqladik.
    Endi activity_main.xml fayliga RecyclerView elementini qo'shamiz:

    http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />



    RecyclerView uchun layout "manager"-i turini bildiruvchi app:layoutManager atributini o'rnatdik.
    Va oxirida, MainActivity.java faylini o'zgartiramiz:
    package com.example.android.recyclerview;

    import androidx.appcompat.app.AppCompatActivity;


    import androidx.recyclerview.widget.RecyclerView;

    import android.os.Bundle;


    import java.util.ArrayList;


    import java.util.List;

    public class MainActivity extends AppCompatActivity {


    List
    programmingLanguages = new ArrayList<>();


    @Override


    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setInitialData();
    RecyclerView recyclerView = findViewById(R.id.list);
    // adapter yaratish
    ProgrammingLanguageAdapter adapter = new ProgrammingLanguageAdapter(this, programmingLanguages);
    // ro'yxat uchun adapterni o'rnatish
    recyclerView.setAdapter(adapter);
    }

    private void setInitialData() {


    programmingLanguages.add(new ProgrammingLanguage("Java", R.drawable.java));


    programmingLanguages.add(new ProgrammingLanguage("Python", R.drawable.python));
    programmingLanguages.add(new ProgrammingLanguage("JavaScript", R.drawable.java_script));
    programmingLanguages.add(new ProgrammingLanguage("C++", R.drawable.c_1));
    programmingLanguages.add(new ProgrammingLanguage("C#", R.drawable.c_2));
    programmingLanguages.add(new ProgrammingLanguage("PHP", R.drawable.php));
    programmingLanguages.add(new ProgrammingLanguage("Kotlin", R.drawable.kotlin));
    }
    }
    Ma'lumotlar to'plami setInitialData() metodi yordamida o'rnatiladi. Bizni kodda res/drawable papkasida ProgrammingLanguage ob'ektlari uchun bir qator rasm resurslari mavjudligini ko'rish mumkin. Ya'ni, avvaldan tayyorlangan rasmlarni drawable papkasiga qo'shish kerak. Keyin yuqoridagi kod yaxshi ishlaydi(xatosiz ishlaydi).
    Ro'yxatni ListView orqali ko'rsatishda bo'lgani kabi, biz avval RecyclerView elementini olamiz, adapter yaratamiz va RecyclerView uchun adapterni o'rnatamiz.
    Butun ilova(project) oxir-oqibat shunday bo'ladi:

    Ilovani ishga tushirib, natijani ko'ramiz:


    Sizlarga beradigan ma'lumotlarim shulardan iborat edi. 


    Download 1.09 Mb.
    1   ...   11   12   13   14   15   16   17   18   19




    Download 1.09 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    1-dars. Android ilovalari haqida ikkita asosiy tushuncha

    Download 1.09 Mb.