Come posso risolvere androidx.appcompat.widget.SearchView non possono essere espressi per android.widget.SearchView

0

Domanda

So che ci sono un sacco di domande sull'errore. Provato molte soluzioni, ho capito che c'era qualcosa di diverso nel mio caso. Qualcuno può per favore aiutarmi? Ho cercato di applicare searchview per recyclerviewe inserito filter() in reyclerview adapter e setOnQueryTextListener in mainactivity.

Ma ho ottenuto il seguente errore: androidx.appcompat.widget.SearchView cannot be cast to android.widget.SearchView

Obbiettivo principale l'allevamento.kt

import android.app.Activity
import android.content.Context
import android.content.Intent
import android.graphics.Canvas
import android.graphics.drawable.Drawable
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.co_investorux_ui.databinding.ActivityMainBinding
import com.example.co_investorux_ui.databinding.ItemViewBinding
import com.sothree.slidinguppanel.SlidingUpPanelLayout
import java.util.*
import kotlin.collections.ArrayList
import android.app.SearchManager
import android.widget.SearchView
import android.widget.SearchView.OnQueryTextListener

...

val searchview :SearchView = findViewById(R.id.search_view)
        searchview.setOnQueryTextListener(object:SearchView.OnQueryTextListener{
            override fun onQueryTextSubmit(query: String?): Boolean {
                return false
            }

            override fun onQueryTextChange(newText: String?): Boolean {
                adapter.filter.filter(newText)
                return false
            }
        })

...

getFilter()

override fun getFilter(): Filter {
            return object : Filter() {
                override fun performFiltering(charSequence: CharSequence): FilterResults {
                    val charString = charSequence.toString()
                    if (charString.isEmpty()) {
                        searchList = itemList
                    } else {
                        val filteredList = ArrayList<CoinList>()

                        for (coin in itemList) {
                            if (coin.name.contains(charString)) {
                                filteredList.add(coin)
                            }
                        }
                        searchList = filteredList
                    }
                    val filterResults = FilterResults()
                    filterResults.values = searchList
                    return filterResults
                }

                override fun publishResults(
                    charSequence: CharSequence,
                    filterResults: FilterResults
                ) {
                    searchList = filterResults.values as ArrayList<CoinList>
                    notifyDataSetChanged()
                }
            }
        }

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<com.sothree.slidinguppanel.SlidingUpPanelLayout 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:id="@+id/mainFrame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    app:umanoDragView="@id/slide_layout"
    app:umanoPanelHeight="16dp"
    tools:context=".MainActivity">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/first_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.appcompat.widget.SearchView
            android:id="@+id/search_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toTopOf="@id/recyclerview"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/inside_layout"/>

    </androidx.constraintlayout.widget.ConstraintLayout>

</com.sothree.slidinguppanel.SlidingUpPanelLayout>

Non so qual è la mia colpa. Come posso risolvere questo problema?

android android-studio kotlin searchview
2021-11-24 06:30:49
2

Migliore risposta

1

Nel tuo importazioni,

Sostituire

import android.widget.SearchView

Con

import androidx.appcompat.widget.SearchView
2021-11-24 06:37:12
0

In xml, è possibile utilizzare androidx SearchView

 androidx.appcompat.widget.SearchView

ma nel tuo kotlin codice di android.widget.SearchView

import android.widget.SearchView

Ecco perché non possono lanciare

2021-11-24 06:52:36

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................