Android java.lang.ClassCastException: android.widget.LinearLayout no se puede convertir en android.widget.TextView
Estoy intentando imprimir el valor que se ha chascado encendido en el listView, pero entonces estoy consiguiendo la excepción siguiente:
07-04 10:40:56.482: E/AndroidRuntime(1356): FATAL EXCEPTION: main 07-04 10:40:56.482: E/AndroidRuntime(1356): java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView 07-04 10:40:56.482: E/AndroidRuntime(1356): at com.passwordkeeper.ui.ActivityHomeScreen$1.onItemClick(ActivityHomeScreen.java:88)
He aquí un fragmento de código:
- Encontrar la ubicación de píxeles del elemento ListView parece devolver un valor incorrecto
- Desplazamiento a través de ListView con algunas imágenes muy laggy
- android: listview: consigue el valor del cursor en el elemento click
- Añadir fragmento al elemento de vista de lista
- Lista de estilo de Gmail
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mTextView = (TextView) findViewById(R.id.labelList); db = new DatabaseHandler(this); createList(); displayList(); }
La función createList funciona correctamente. Aquí está mi método displayList:
public void displayList(){ this.setListAdapter(new ArrayAdapter<String>(this, R.layout.activity_home_screen, R.id.listTextView, mAccountNames)); mListView = getListView(); mListView.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String product = ((TextView) view).getText().toString(); Log.v("mSelectedProduct", product); } }); }
Mi código xml para el archivo activity_home_screen.xml es:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/listTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="28dp" android:layout_marginTop="26dp" android:textAppearance="?android:attr/textAppearanceLarge" />
¡Cualquier ayuda sería útil!
Gracias.
- NullPointerException en onLoaderFinished usando SimpleCursorAdapter
- ListView item link haga clic en el estado de la fila con el botón dentro del elemento de lista
- Animación de traducción para ocultar Vista
- Linkify, ListView y ActionMode. El texto regular ya no se puede hacer clic
- Android cómo modificar EditText editable dentro de un ListView
- Listview la misma altura que el contenido
- EditText comportamiento extraño en ListView BaseAdapter
- ListView sin ListActivity
Puedes probar esto
mListView.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView txtview = (TextView)view.findViewById(R.id.listTextView); String product = txtview.getText().toString(); Log.v("mSelectedProduct", product); } });
Utilizar esta:
String product = ((TextView) view.findViewById(R.id.listTextView)).getText().toString();
La vista que está recibiendo en OnItemClickListener devolverá la disposición principal, que es LinearLayout en su caso.
puede obtener su texto haciendo lo siguiente:
mListView.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView txtview = (TextView)view.findViewById(R.id.listTextView); String product = txtview.getText().toString(); Log.v("mSelectedProduct", product); } });
mListView.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView textview= (TextView)view.findViewById(R.id.TEXTVIEW_ID); String product = textView.getText().toString(); Log.v("mSelectedProduct", product); } });
Reemplace "TEXTVIEW_ID" por el id de la vista de texto que ha dado en el elemento xml de la vista de lista (si no se da, escriba uno).
- Android Colores Alternativos Para ListView es Aleatorio
- Construir android – ¿cómo cargar la imagen del kernel en el comando mkbootimg?