From dfb643703cdfd87882fe03eeb2f243763511e237 Mon Sep 17 00:00:00 2001 From: John Codeos Date: Tue, 14 Jun 2022 11:03:28 +0300 Subject: [PATCH] Update Gradle, Dependencies and Kotlin version. Binding has been replaced by findViewById --- .idea/compiler.xml | 2 +- .idea/gradle.xml | 1 - .idea/misc.xml | 2 +- app/build.gradle | 7 +--- .../DetailsActivity.kt | 10 ++--- .../searchrecyclerviewexample/MainActivity.kt | 28 ++++++------- .../RecyclerViewAdapter.kt | 33 ++++++++------- app/src/main/res/layout/activity_details.xml | 17 ++++---- app/src/main/res/layout/activity_main.xml | 42 +++++++++---------- app/src/main/res/layout/recyclerview_row.xml | 6 +-- build.gradle | 6 +-- gradle/wrapper/gradle-wrapper.properties | 2 +- 12 files changed, 73 insertions(+), 83 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 61a9130..fb7f4a8 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 35ffc65..a0de2a1 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -14,7 +14,6 @@ - diff --git a/.idea/misc.xml b/.idea/misc.xml index b7dacad..212a903 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -9,7 +9,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index bda3c66..ecdef71 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,14 +29,11 @@ android { kotlinOptions { jvmTarget = '1.8' } - buildFeatures { - viewBinding true - } } dependencies { - implementation 'androidx.appcompat:appcompat:1.4.1' - implementation 'androidx.core:core-ktx:1.7.0' + implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.core:core-ktx:1.8.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' diff --git a/app/src/main/java/com/example/searchrecyclerviewexample/DetailsActivity.kt b/app/src/main/java/com/example/searchrecyclerviewexample/DetailsActivity.kt index a86e855..e9daf35 100644 --- a/app/src/main/java/com/example/searchrecyclerviewexample/DetailsActivity.kt +++ b/app/src/main/java/com/example/searchrecyclerviewexample/DetailsActivity.kt @@ -1,20 +1,18 @@ package com.example.searchrecyclerviewexample import android.os.Bundle +import android.widget.TextView import androidx.appcompat.app.AppCompatActivity -import com.example.searchrecyclerviewexample.databinding.ActivityDetailsBinding class DetailsActivity : AppCompatActivity() { - private lateinit var binding: ActivityDetailsBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding = ActivityDetailsBinding.inflate(layoutInflater) - val view = binding.root - setContentView(view) + setContentView(R.layout.activity_details) - binding.detailCountryText.text = intent.extras!!.getString("passselectedcountry")!! + val detailCountryText = findViewById(R.id.detail_country_text_view) + detailCountryText.text = intent.extras!!.getString("passselectedcountry")!! } } diff --git a/app/src/main/java/com/example/searchrecyclerviewexample/MainActivity.kt b/app/src/main/java/com/example/searchrecyclerviewexample/MainActivity.kt index dcf150c..4e7fd39 100644 --- a/app/src/main/java/com/example/searchrecyclerviewexample/MainActivity.kt +++ b/app/src/main/java/com/example/searchrecyclerviewexample/MainActivity.kt @@ -8,40 +8,38 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.SearchView import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.example.searchrecyclerviewexample.databinding.ActivityMainBinding import java.util.* -import kotlin.collections.ArrayList class MainActivity : AppCompatActivity() { lateinit var adapter: RecyclerViewAdapter - lateinit var countryrv: RecyclerView + private lateinit var countryRv: RecyclerView - private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding = ActivityMainBinding.inflate(layoutInflater) - setContentView(binding.root) + setContentView(R.layout.activity_main) - val searchIcon = binding.countrySearch.findViewById(androidx.appcompat.R.id.search_mag_icon) + val countrySearch = findViewById(R.id.country_search) + val searchIcon = + countrySearch.findViewById(androidx.appcompat.R.id.search_mag_icon) searchIcon.setColorFilter(Color.WHITE) - - val cancelIcon = binding.countrySearch.findViewById(androidx.appcompat.R.id.search_close_btn) + val cancelIcon = + countrySearch.findViewById(androidx.appcompat.R.id.search_close_btn) cancelIcon.setColorFilter(Color.WHITE) - val textView = binding.countrySearch.findViewById(androidx.appcompat.R.id.search_src_text) + val textView = countrySearch.findViewById(androidx.appcompat.R.id.search_src_text) textView.setTextColor(Color.WHITE) // If you want to change the color of the cursor, change the 'colorAccent' in colors.xml - countryrv = findViewById(R.id.country_rv) - countryrv.layoutManager = LinearLayoutManager(countryrv.context) - countryrv.setHasFixedSize(true) + countryRv = findViewById(R.id.country_rv) + countryRv.layoutManager = LinearLayoutManager(countryRv.context) + countryRv.setHasFixedSize(true) - binding.countrySearch.setOnQueryTextListener(object : SearchView.OnQueryTextListener { + countrySearch.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String?): Boolean { return false } @@ -71,7 +69,7 @@ class MainActivity : AppCompatActivity() { countryListWithEmojis.add("$countryName $flag") } adapter = RecyclerViewAdapter(countryListWithEmojis) - countryrv.adapter = adapter + countryRv.adapter = adapter } diff --git a/app/src/main/java/com/example/searchrecyclerviewexample/RecyclerViewAdapter.kt b/app/src/main/java/com/example/searchrecyclerviewexample/RecyclerViewAdapter.kt index 6e88d84..e1fb11b 100644 --- a/app/src/main/java/com/example/searchrecyclerviewexample/RecyclerViewAdapter.kt +++ b/app/src/main/java/com/example/searchrecyclerviewexample/RecyclerViewAdapter.kt @@ -5,33 +5,33 @@ import android.content.Intent import android.graphics.Color import android.util.Log import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import android.widget.Filter import android.widget.Filterable +import android.widget.RelativeLayout +import android.widget.TextView import androidx.recyclerview.widget.RecyclerView -import com.example.searchrecyclerviewexample.databinding.RecyclerviewRowBinding import java.util.* -import kotlin.collections.ArrayList class RecyclerViewAdapter(private var countryList: ArrayList) : - RecyclerView.Adapter(), Filterable { + RecyclerView.Adapter(), Filterable { var countryFilterList = ArrayList() - lateinit var mContext: Context + private lateinit var mContext: Context - class CountryHolder(var viewBinding: RecyclerviewRowBinding) : - RecyclerView.ViewHolder(viewBinding.root) + inner class CountryViewHolder(view: View) : RecyclerView.ViewHolder(view) init { countryFilterList = countryList } - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - val binding = - RecyclerviewRowBinding.inflate(LayoutInflater.from(parent.context), parent, false) - val sch = CountryHolder(binding) + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CountryViewHolder { + val v = + LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_row, parent, false) + val sch = CountryViewHolder(v) mContext = parent.context return sch } @@ -40,12 +40,15 @@ class RecyclerViewAdapter(private var countryList: ArrayList) : return countryFilterList.size } - override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - val countryHolder = holder as CountryHolder - countryHolder.viewBinding.selectCountryContainer.setBackgroundColor(Color.TRANSPARENT) + override fun onBindViewHolder(holder: CountryViewHolder, position: Int) { + val selectCountryContainer = + holder.itemView.findViewById(R.id.select_country_container) + selectCountryContainer.setBackgroundColor(Color.TRANSPARENT) - countryHolder.viewBinding.selectCountryText.setTextColor(Color.WHITE) - countryHolder.viewBinding.selectCountryText.text = countryFilterList[position] + val selectCountryTextView = + holder.itemView.findViewById(R.id.select_country_text_view) + selectCountryTextView.setTextColor(Color.WHITE) + selectCountryTextView.text = countryFilterList[position] holder.itemView.setOnClickListener { val intent = Intent(mContext, DetailsActivity::class.java) diff --git a/app/src/main/res/layout/activity_details.xml b/app/src/main/res/layout/activity_details.xml index 063bf17..ae8a428 100644 --- a/app/src/main/res/layout/activity_details.xml +++ b/app/src/main/res/layout/activity_details.xml @@ -1,6 +1,5 @@ - + android:textSize="22sp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 7f7f357..a76429f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,28 +1,28 @@ - - + android:layout_height="match_parent" + android:background="@color/colorPrimaryDark" + android:orientation="vertical" + tools:context=".MainActivity"> + - + + \ No newline at end of file diff --git a/app/src/main/res/layout/recyclerview_row.xml b/app/src/main/res/layout/recyclerview_row.xml index 05f508e..5df1bc0 100644 --- a/app/src/main/res/layout/recyclerview_row.xml +++ b/app/src/main/res/layout/recyclerview_row.xml @@ -1,6 +1,5 @@