Sobes.tech
Middle

Ako zorganizovať prácu s textom a obrázkami v delegátovi?

sobes.tech AI

Odpoveď od AI

Na prácu s textom môžete použiť rôzne UI komponenty, ako sú TextView, EditText a Button. Formátovanie textu sa vykonáva pomocou HTML alebo Spannable objektov.

Pre prácu s obrázkami sa používa ImageView. Načítanie obrázkov môže byť asynchrónne s využitím knižníc ako Glide, Coil alebo Picasso na caching a optimalizáciu.

Prepojenie dát (textov a/alebo obrázkov) s UI prvkami sa zvyčajne realizuje cez vzor Model-View-ViewModel (MVVM), kde delegát funguje ako View a ViewModel poskytuje dáta.

Príklad použitia TextView a ImageView v XML:

<LinearLayout  
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    android:orientation="vertical">

    <TextView  
        android:id="@+id/textViewTitle"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="Príklad nadpisu"  
        android:textSize="18sp"  
        android:textStyle="bold"/>

    <ImageView  
        android:id="@+id/imageViewContent"  
        android:layout_width="match_parent"  
        android:layout_height="200dp"  
        android:scaleType="centerCrop"  
        android:src="@drawable/placeholder_image"/> <!-- Obrázok náhradník -->

    <TextView  
        android:id="@+id/textViewContent"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="Príklad textu"  
        android:layout_marginTop="8dp"/>

</LinearLayout>

V kóde bude logika delegáta spájať dáta s týmito komponentmi. Napríklad v adaptéri RecyclerView v metóde onBindViewHolder:

// V rámci vášho adaptéra
override fun onBindViewHolder(holder: ViewHolder, position: Int) {  
    val item = dataList[position] // Získanie dátového prvku

    holder.textViewTitle.text = item.title  
    holder.textViewContent.text = item.content

    // Načítanie obrázka s Glide
    Glide.with(holder.imageViewContent.context)  
        .load(item.imageUrl)  
        .placeholder(R.drawable.placeholder_image) // Náhradné obrázok  
        .error(R.drawable.error_image) // Obrázok pri chybe  
        .into(holder.imageViewContent)  
}

Hlavné body:

  • Modelovanie: Používajte XML na definíciu rozloženia.
  • Väzba dát: Programovo prepojte dáta z modelu s UI prvkami.
  • Asynchrónne načítanie: Používajte knižnice na asynchrónne načítanie obrázkov.
  • Optimalizácia: Cacheovanie obrázkov a opätovné použitie View.
  • Spracovanie kliknutí: Pridajte poslucháčov kliknutí (OnClickListener) k UI prvkom podľa potreby.

Tabuľka zodpovedajúcich UI prvkov a typu dát:

UI prvok Typ dát Príklad použitia
TextView String Zobrazenie textu, nadpisov, popisov.
EditText String Vstup textu používateľom.
Button String Text na tlačidle.
ImageView Bitmap, Drawable, String (URL) Zobrazenie obrázkov.