No se pasó ningún valor para el elemento de parámetro
Hola tengo este código:
override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.menu_search, menu) val searchItem = menu.findItem(R.id.action_search) val searchView = MenuItemCompat.getActionView() as SearchView //*** setOnQueryTextFocusChangeListener *** searchView.setOnQueryTextFocusChangeListener(object : View.OnFocusChangeListener { override fun onFocusChange(v: View, hasFocus: Boolean) { } }) searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String): Boolean { return false } override fun onQueryTextChange(searchQuery: String): Boolean { adapter!!.filter(searchQuery.trim { it <= ' ' }) tvListAnimal.invalidate() return true } }) return true }
Y encontré un error en esta línea: val searchView = MenuItemCompat.getActionView() as SearchView
. En realidad, es solo el comienzo del código. De hecho, Android Studio me dijo: ¿ No value passed for parameter item
pero realmente no sé lo que tengo que poner?
- ¿Es aplicable escribir un controller JDBC en Kotlin?
- Android WebView salta a la cima en cada actualización de página (?)
- ¿Cómo comstackr el module de dominio Kotlin con el module cliente con Gradle?
- Error "Referencia no resuelta" de Kotlin TypeToken
- Spring Boot + Kotlin AutoProxyRegistrar causa la exception de Nullpointer
¡Muchas gracias por tu ayuda! De Verdad !
EDITAR: aquí está el menu_search.xml:
<?xml version="1.0" encoding="utf-8"?> <menu 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" tools:context=".SettingsFragment"> <item android:id="@+id/action_search" android:title="Search" android:icon="@drawable/ic_search" app:showAsAction="collapseActionView|always" app:actionViewClass="android.support.v7.widget.SearchView" android:layout_width="wrap_content" /> </menu>
Encontré esto en el logcat:
java.lang.ClassCastException: android.support.v7.widget.SearchView cannot be cast to android.widget.SearchView
- No puedo get una variable en la sección de buildscript
- ¿Cómo puedo descartar la alerta después de hacer clic en el button Atrás?
- ¿Cómo usar types personalizados para los parameters de Retrofit @Query?
- La igualdad de identidad para los arguments de los types Int e Int está en desuso
- Kotlin custom setter
- Error de testing de unidad de data binding de Android Error al analizar las opciones del comstackdor de data binding. Params:
- Android - RoomDb - La entidad insertada con éxito no se encuentra en la consulta de selección en otra actividad
- Llamar al constructor de la class por reflexión con Kotlin
El problema es que MenuItemCompat.getActionView()
requiere que MenuItem
se pase como un parámetro:
val searchView = MenuItemCompat.getActionView(searchItem) as SearchView
Si esto está depracated en la versión de Android que estás usando ( como se ve aquí ), deberías usar esto en su lugar:
val searchView = searchItem.getActionView() as SearchView
- ¿Cómo puedo hacer que IntelliJ refactor-> cambie el nombre del parámetro y cambie el nombre de la versión local del mismo? (Kotlin)
- ¿Cómo puedo completar mi constructor?