Why My Recycler view is not showing anything??
yash292005 opened this issue · comments
this is my main activity:
package com.example.recyclerviewpractice
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.recyclerviewpractice.databinding.ActivityMainBinding
import com.google.android.material.snackbar.Snackbar
@Suppress("LocalVariableName", "PrivatePropertyName", "FunctionName")
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private val ExampleItems: ArrayList<TestItems> = ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
setSupportActionBar(binding.toolbar)
binding.fab.setOnClickListener { view ->
Snackbar.make(view, "Coding Makes Me Happy", Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
}
val mainView = findViewById<RecyclerView>(R.id.MainView)
mainView.layoutManager = LinearLayoutManager(this)
mainView.adapter = TestAdapter()
LoadSampleData()
}
private fun LoadSampleData() {
ExampleItems.add(TestItems(R.drawable.ic_launcher_background, "Name1"))
ExampleItems.add(TestItems(android.R.drawable.checkbox_off_background, "Name2"))
ExampleItems.add(TestItems(android.R.drawable.bottom_bar, "Name3"))
ExampleItems.add(TestItems(android.R.drawable.btn_default_small, "Name4"))
ExampleItems.add(TestItems(android.R.drawable.btn_default_small, "Name5"))
ExampleItems.add(TestItems(R.drawable.ic_launcher_background, "Name6"))
ExampleItems.add(TestItems(R.drawable.ic_launcher_background, "Name7"))
ExampleItems.add(TestItems(R.drawable.ic_launcher_background, "Name8"))
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.menu_main, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
return when (item.itemId) {
R.id.action_settings -> true
else -> super.onOptionsItemSelected(item)
}
}
}
This is my Adapter:
package com.example.recyclerviewpractice
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
@Suppress("PropertyName")
class TestAdapter: RecyclerView.Adapter<TestAdapter.ViewHolder>() {
private val dataSet: ArrayList = ArrayList()
inner class ViewHolder(view: View): RecyclerView.ViewHolder(view){
val ShowImage: ImageView = itemView.findViewById(R.id.Sample_Image)
val ShowText: TextView = itemView.findViewById(R.id.Sample_Text)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TestAdapter.ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_content, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: TestAdapter.ViewHolder, position: Int) {
val currentItems = dataSet[position]
holder.ShowText.text = currentItems.MainText
Glide.with(holder.itemView.context).load(currentItems.MainImage).into(holder.ShowImage)
}
override fun getItemCount(): Int {
return dataSet.size
}
}
this is main Activity.xml:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.RecyclerViewPractice.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
app:title="@string/TitleName"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/Theme.RecyclerViewPractice.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/item_content"
android:id="@+id/MainView"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_menu_edit" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
and this is the item content:
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="10dp"
app:cardCornerRadius="10dp">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/Sample_Text"
android:layout_gravity="center"
android:layout_marginStart="10dp"
android:layout_marginEnd="5dp"
android:textSize="20sp"
android:text="@string/sample_text"/>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView>
Thanks i've resolved it my self