TransWikia.com

java.lang.ClassCastException: androidx.appcompat.widget.SearchView cannot be cast to android.widget.SearchView

Stack Overflow en español Asked by David Garcia on December 2, 2021

Buenas porfavor me gustaria que me pudieran ayudar en este error no se porque no puedo castearlo, para poder recuperarlo en el java mi elemento SearchView desde el xml.

este es mi xml:

  <?xml version="1.0" encoding="utf-8"?>
   <androidx.appcompat.widget.Toolbar 
 xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="@dimen/dp_70"
  android:minHeight="?attr/actionBarSize"
  app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
  android:background="@color/color_sbc_mostaza"
   >

 <RelativeLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent">

     <ImageView
         android:id="@+id/image_one_toolbar"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:src="@drawable/reservas"
         android:layout_centerVertical="true"
         />


     <androidx.appcompat.widget.SearchView
         android:id="@+id/searchView"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerVertical="true"
         android:layout_toRightOf="@+id/image_one_toolbar"
         android:maxWidth="@dimen/dp_250"
         />

     <TextView
         android:id="@+id/textView_toolbar"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Esto es un texto"
         android:textColor="@color/color_blanco"
         android:layout_centerVertical="true"
         android:layout_centerHorizontal="true"
         android:layout_marginLeft="@dimen/dp_70"
         />

     <ImageView
         android:id="@+id/image_two_toolbar"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_toRightOf="@+id/textView_toolbar"
         android:src="@drawable/reservas"
         android:layout_marginLeft="@dimen/dp_40"
         android:layout_centerVertical="true"
         />

     <ImageView
         android:id="@+id/image_three_toolbar"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_toRightOf="@id/image_two_toolbar"
         android:src="@drawable/reservas"
         android:layout_marginLeft="@dimen/dp_30"
         android:layout_centerVertical="true"
         />


 </RelativeLayout>

y este es mi java:

import androidx.appcompat.app.AppCompatActivity;

   import android.os.Bundle;
   import android.view.MenuItem;
  import android.view.View;
  import android.widget.ImageView;
  import android.widget.SearchView;
  import android.widget.TextView;
  import com.example.sbcclub.R;

   public class UbicacionActivity extends AppCompatActivity  {

  ImageView imagenOneToolBar , imagenTwoToolBar, imagenThreeToolBar;
  SearchView searchViewToolBar;
  TextView textViewToolBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ubicacion);
    getSupportActionBar().hide();

   inicializarObjetosDelToolBar();


}

 private void  inicializarObjetosDelToolBar(){



    this.imagenOneToolBar = 
    (ImageView)findViewById(R.id.image_one_toolbar);
    this.imagenTwoToolBar = 
  (ImageView)findViewById(R.id.image_two_toolbar);
    this.imagenThreeToolBar = 
 (ImageView)findViewById(R.id.image_three_toolbar);
    this.searchViewToolBar = findViewById(R.id.searchView);
    this.textViewToolBar = 
  (TextView)findViewById(R.id.textView_toolbar);






}
 }

y este es el xml del activity Ubicacion en si porque el primer xml que vieron simplemente es el toolbar que lo incluyo en este xml de abajo del activity

<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.UbicacionActivity">

   <include
    android:id="@+id/toolBarSearchs"
    layout="@layout/action_bar" />

 </androidx.constraintlayout.widget.ConstraintLayout>

Bueno lo que intente hasta este momento fue simplemente anadir algunos
packetes y liberias que busque por internet pero aun no me dieron la solucion en si.

Bueno espero poder tener una ayuda, muchas gracias.

One Answer

El elemento que estás poniendo en el XML es de otra clase, por eso el error.

Si observas esto:

 <androidx.appcompat.widget.SearchView
     android:id="@+id/searchView"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_centerVertical="true"
     android:layout_toRightOf="@+id/image_one_toolbar"
     android:maxWidth="@dimen/dp_250"
     />

Verás que la clase sería: androidx.appcompat.widget.SearchView, pero en el código Java estás importando otra clase:

import android.widget.SearchView;

Tienes entonces que borrar esa línea, y poner este import:

import androidx.appcompat.widget.SearchView;

Con eso debería desaparecer el error.

Answered by A. Cedano on December 2, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP