|
1-dars. Android ilovalari haqida ikkita asosiy tushuncha
|
bet | 14/19 | Sana | 14.03.2022 | Hajmi | 1.09 Mb. | | #18629 |
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- topshiriqRecyclerView-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.
|
| |