zihadrizkyef

SearchView3.kt

Jan 30th, 2022
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.71 KB | None | 0 0
  1. package com.kikota.pos.views
  2.  
  3. import android.content.Context
  4. import android.graphics.Color
  5. import android.util.AttributeSet
  6. import android.view.LayoutInflater
  7. import android.widget.EditText
  8. import android.widget.ImageView
  9. import androidx.core.view.isVisible
  10. import androidx.core.widget.addTextChangedListener
  11. import com.google.android.material.card.MaterialCardView
  12. import com.kikota.pos.R
  13. import com.kikota.pos.utils.dp
  14. import com.kikota.pos.utils.onSearch
  15.  
  16. class SearchView3 @JvmOverloads constructor(
  17.     context: Context, attrs: AttributeSet? = null
  18. ) : MaterialCardView(context, attrs) {
  19.     private var textChangeListener: (text: String) -> Unit = {}
  20.     private var textSubmitListener: (text: String) -> Unit = {}
  21.  
  22.     init {
  23.         radius = 100F
  24.         cardElevation = 4.dp.toFloat()
  25.         setCardBackgroundColor(Color.WHITE)
  26.  
  27.         val inflater = LayoutInflater.from(context)
  28.         inflater.inflate(R.layout.component_search_3, this, true)
  29.        
  30.         val inputSearch = findViewById<EditText>(R.id._inputSearch)
  31.         val buttonClearSearch = findViewById<ImageView>(R.id._buttonClearSearch)
  32.  
  33.         inputSearch.addTextChangedListener {
  34.             textChangeListener(it.toString())
  35.             buttonClearSearch.isVisible = !it.isNullOrBlank()
  36.         }
  37.  
  38.         inputSearch.onSearch {
  39.             textSubmitListener(inputSearch.text.toString())
  40.         }
  41.  
  42.         buttonClearSearch.setOnClickListener {
  43.             inputSearch.setText("")
  44.         }
  45.     }
  46.  
  47.     fun setChangeListener(listener: (text: String) -> Unit) {
  48.         textChangeListener = listener
  49.     }
  50.  
  51.     fun setSubmitListener(listener: (text: String) -> Unit) {
  52.         textSubmitListener = listener
  53.     }
  54. }
Add Comment
Please, Sign In to add comment