কম্পিউটার

কোটলিন ব্যবহার করে অ্যান্ড্রয়েড রিসাইক্লারভিউতে নির্বাচিত আইটেমগুলিকে কীভাবে সঠিকভাবে হাইলাইট করবেন?


এই উদাহরণটি কোটলিন ব্যবহার করে Android RecyclerView-এ নির্বাচিত আইটেমগুলিকে কীভাবে সঠিকভাবে হাইলাইট করতে হয় তা দেখায়৷

ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷

ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
   xmlns:tools="https://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:padding="4dp"
   tools:context=".MainActivity">
   <androidx.recyclerview.widget.RecyclerView
      android:id="@+id/recyclerView"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingBottom="8dp" />
</RelativeLayout>

ধাপ 3 − নিম্নলিখিত কোডটি src/MainActivity.kt

এ যোগ করুন
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class MainActivity : AppCompatActivity() {
   override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)
      title = "KotlinApp"
      val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
      recyclerView.addItemDecoration(SimpleItemDecoration(this))
      val layoutManager = LinearLayoutManager(this@MainActivity)
      recyclerView.layoutManager = layoutManager
      val posts = returnListItems()
      val adapter = RecyclerViewAdapter(this@MainActivity, posts)
      recyclerView.adapter = adapter
   }
   private fun returnListItems(): List<ItemObject>? {
      val items: MutableList<ItemObject> = ArrayList()
      items.add(ItemObject("Ballon'd'or", "2007", "Ricardo KaKa"))
      items.add(ItemObject("Ballon'd'or", "2008", "Cristiano Ronaldo"))
      items.add(ItemObject("Ballon'd'or", "2009 - 2012, 2015", "Lionel Messi"))
      items.add(ItemObject("Ballon'd'or", "2013, 2014, 2016, 2017", "Cristiano Ronaldo"))
      items.add(ItemObject("Ballon'd'or", "2018", "Luca Modric"))
      items.add(ItemObject("Ballon'd'or", "2019", "Lionel Messi"))
      return items
   }
}

পদক্ষেপ 4৷ − নীচে উল্লিখিত হিসাবে কোটলিন ক্লাস ফাইল তৈরি করুন এবং সংশ্লিষ্ট কোড যোগ করুন

ItemObject.kt

internal class ItemObject(val awardTitle: String, val awardYear: String, val player: String) {
}

RecyclerViewAdapter.kt

import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.annotation.NonNull
import androidx.recyclerview.widget.RecyclerView
class RecyclerViewAdapter internal constructor(
   context: MainActivity,
   private val itemList: List<ItemObject>?
) : RecyclerView.Adapter<RecyclerViewHolders>() {
   @NonNull
   override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerViewHolders {
      val layoutView = LayoutInflater.from(parent.context).inflate(R.layout.list_layout, null)
      return RecyclerViewHolders(layoutView)
   }
   override fun onBindViewHolder(holder: RecyclerViewHolders, position: Int) {
      holder.awardTitle.text = "Award Title: " + itemList!![position].awardTitle
      holder.awardYear.text = "Award Year: " + itemList[position].awardYear
      holder.player.text = "Player Name: " + itemList[position].player
   }
   override fun getItemCount(): Int {
      return this.itemList!!.size
   }
}

RecyclerViewHolders.kt

import android.util.SparseBooleanArray
import android.view.View
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
class RecyclerViewHolders(itemView: View) : ViewHolder(itemView),
View.OnClickListener {
   var awardTitle: TextView
   var awardYear: TextView
   var player: TextView
   private val selectedItems = SparseBooleanArray()
   override fun onClick(view: View) {
      if (selectedItems[adapterPosition, false]) {
         selectedItems.delete(adapterPosition)
         view.isSelected = false
      }
      else {
         selectedItems.put(adapterPosition, true)
         view.isSelected = true
      }
   }
   init {
      itemView.setOnClickListener(this)
      awardTitle = itemView.findViewById(R.id.awardTitle)
      awardYear = itemView.findViewById(R.id.awardYear)
      player = itemView.findViewById(R.id.playerName)
   }
}

SimpleItemDecoration.kt

import android.content.Context
import android.graphics.Canvas
import android.graphics.drawable.Drawable
import androidx.annotation.NonNull
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
internal class SimpleItemDecoration(context: Context) : RecyclerView.ItemDecoration() {
   private val drawable: Drawable = ContextCompat.getDrawable(context, R.drawable.line_divider)!!
   override fun onDrawOver(
      @NonNull canvas: Canvas,
      parent: RecyclerView,
      @NonNull state: RecyclerView.State
   )
   {
      val left = parent.paddingLeft
      val right = parent.width - parent.paddingRight
      val childCount = parent.childCount
      for (i in 0 until childCount) {
         val child = parent.getChildAt(i)
         val params = child.layoutParams as RecyclerView.LayoutParams
         val top = child.bottom + params.bottomMargin
         val bottom = top + drawable.intrinsicHeight
         drawable.setBounds(left, top, right, bottom)
         drawable.draw(canvas)
      }
   }
}

ধাপ 5 - নীচে উল্লিখিত হিসাবে অঙ্কনযোগ্য সম্পদ ফাইল তৈরি করুন এবং সংশ্লিষ্ট কোড যোগ করুন

background_selecter.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="https://schemas.android.com/apk/res/android">
   <item android:drawable="@android:color/holo_green_light" android:state_pressed="false" android:state_selected="true" />
   <item android:drawable="@android:color/holo_purple" android:state_selected="false" />
</selector>

line_divider.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="https://schemas.android.com/apk/res/android"
   android:shape="rectangle">
   <size
      android:width="2dp"
      android:height="2dp" />
   <solid android:color="@color/colorPrimaryDark" />
</shape>

ধাপ 6 − একটি লেআউট রিসোর্স ফাইল তৈরি করুন (list_layout.xml) এবং নিম্নলিখিত কোড যোগ করুন

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
   android:id="@+id/container"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@drawable/background_selector"
   android:padding="16dp">
   <TextView
      android:id="@+id/awardTitle"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginTop="10dp"
      android:text="New Text"
      android:textColor="@android:color/background_dark"
      android:textSize="18sp"
      android:textStyle="bold" />
   <TextView
      android:id="@+id/awardYear"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_below="@+id/awardTitle"
      android:layout_alignStart="@+id/awardTitle"
      android:layout_marginTop="20dp"
      android:text="New Text"
      android:textColor="@android:color/background_dark" />
   <TextView
      android:layout_marginBottom="10dp"
      android:id="@+id/playerName"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentEnd="true"
      android:text="New Text"
      android:textColor="@android:color/background_dark" />
</RelativeLayout>

পদক্ষেপ 7 − androidManifest.xmlv

-এ নিম্নলিখিত কোড যোগ করুন
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
   package="com.example.q11">
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালানোর জন্য, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং রান এ ক্লিক করুন টুলবার থেকে কোটলিন ব্যবহার করে অ্যান্ড্রয়েড রিসাইক্লারভিউতে নির্বাচিত আইটেমগুলিকে কীভাবে সঠিকভাবে হাইলাইট করবেন? আইকন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে

কোটলিন ব্যবহার করে অ্যান্ড্রয়েড রিসাইক্লারভিউতে নির্বাচিত আইটেমগুলিকে কীভাবে সঠিকভাবে হাইলাইট করবেন?

কোটলিন ব্যবহার করে অ্যান্ড্রয়েড রিসাইক্লারভিউতে নির্বাচিত আইটেমগুলিকে কীভাবে সঠিকভাবে হাইলাইট করবেন?


  1. অ্যান্ড্রয়েড রিসাইক্লারভিউতে নির্বাচিত আইটেমটিকে কীভাবে সঠিকভাবে হাইলাইট করবেন?

  2. কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে স্ক্রোলযোগ্য টেক্সটভিউ কীভাবে তৈরি করবেন?

  3. কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে JSON অবজেক্টগুলি কীভাবে পার্স করবেন?

  4. কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে গ্রিডভিউ স্ক্রোলিং কীভাবে অক্ষম করবেন?