diff options
5 files changed, 104 insertions, 38 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/SampleAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/SampleAdapter.kt new file mode 100644 index 0000000..12f019f --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/SampleAdapter.kt @@ -0,0 +1,29 @@ +package com.example.brzodolokacije.Adapters + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Models.ListItemModel +import com.example.brzodolokacije.databinding.ListItemBinding + +class SampleAdapter (val items : MutableList<ListItemModel>) + : RecyclerView.Adapter<SampleAdapter.ViewHolder>(){ + private lateinit var binding: ListItemBinding + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val inflater = LayoutInflater.from(parent.context) + binding=ListItemBinding.inflate(inflater,parent,false) + return ViewHolder(binding) + } + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(items[position]) + } + override fun getItemCount() = items.size + inner class ViewHolder(itemView : ListItemBinding) : RecyclerView.ViewHolder(itemView.root){ + fun bind(item : ListItemModel){ + binding.apply { + tvId.text=item.id.toString() + tvName.text=item.name + } + } + } +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt index 397e1cf..b460fd4 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt @@ -1,16 +1,18 @@ package com.example.brzodolokacije.Fragments import android.os.Bundle +import android.util.Log import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Button +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Adapters.SampleAdapter +import com.example.brzodolokacije.Models.ListItemModel import com.example.brzodolokacije.R - -// TODO: Rename parameter arguments, choose names that match -// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER -private const val ARG_PARAM1 = "param1" -private const val ARG_PARAM2 = "param2" +import com.example.brzodolokacije.databinding.FragmentHomeBinding /** * A simple [Fragment] subclass. @@ -18,43 +20,46 @@ private const val ARG_PARAM2 = "param2" * create an instance of this fragment. */ class FragmentHome : Fragment() { - // TODO: Rename and change types of parameters - private var param1: String? = null - private var param2: String? = null + + private lateinit var binding: FragmentHomeBinding + private var nameList : MutableList<ListItemModel> = mutableListOf() + private var layoutManagerVar: RecyclerView.LayoutManager? = null + private var adapterVar: RecyclerView.Adapter<SampleAdapter.ViewHolder>? = null + private var recyclerView:RecyclerView?=null + + override fun onViewCreated(itemView: View, savedInstanceState: Bundle?) { + super.onViewCreated(itemView, savedInstanceState) + Log.d("Main","blabla") + + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - arguments?.let { - param1 = it.getString(ARG_PARAM1) - param2 = it.getString(ARG_PARAM2) - } + //load data for the list + loadData() + adapterVar=SampleAdapter(nameList) + layoutManagerVar=LinearLayoutManager(activity) } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_home, container, false) + val rootView = inflater?.inflate(R.layout.fragment_home, container, false) + recyclerView = rootView?.findViewById(R.id.rvMain) + // rest of my stuff + recyclerView?.setHasFixedSize(true) + recyclerView?.layoutManager = layoutManagerVar + recyclerView?.adapter = adapterVar + return rootView } - - companion object { - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment FragmentHome. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - FragmentHome().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } + fun loadData(){ + nameList.add(ListItemModel(1,"Sample 1")) + nameList.add(ListItemModel(2,"Sample 2")) + nameList.add(ListItemModel(3,"Sample 3")) + nameList.add(ListItemModel(4,"Sample 4")) + nameList.add(ListItemModel(5,"Sample 5")) + nameList.add(ListItemModel(6,"Sample 6")) } -}
\ No newline at end of file +} diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/ListItemModel.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/ListItemModel.kt new file mode 100644 index 0000000..48e519e --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/ListItemModel.kt @@ -0,0 +1,6 @@ +package com.example.brzodolokacije.Models + +data class ListItemModel ( + val id:Int , + val name: String + )
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml index 2395f65..f735bec 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml @@ -1,14 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Fragments.FragmentHome"> - <!-- TODO: Update blank fragment layout --> - <TextView - android:layout_width="match_parent" + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/rvMain" android:layout_height="match_parent" - android:text="@string/hello_blank_fragment" /> + android:layout_width="match_parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent"/> </FrameLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml new file mode 100644 index 0000000..fe53ac5 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="#B3E5FC" + android:layout_margin="5dp" + android:padding="5dp"> + <TextView + android:id="@+id/tvId" + android:text="Id" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + <TextView + android:id="@+id/tvName" + android:text="Name" + android:layout_marginTop="5dp" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/tvId" /> +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file |