java.lang.ClassCastException: android.widget de.LinearLayout ne peut pas être lancé pour android.widget de.TextView
J'ai cette erreur lorsque j'utilise mon application :
05-01 14:18:41.000: E/AndroidRuntime(26607): FATAL EXCEPTION: main
05-01 14:18:41.000: E/AndroidRuntime(26607): java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
La méthode de la question :
public void onItemClick(AdapterView<?> adapterView, View view, int postion,
long index) {
//Get MAC adress matching the last 17 characters of the TextView
String info = ((TextView) view).getText().toString(); // HERE IS THE ISSUE
String address = info.substring(info.length() - 17);
Intent intent = new Intent();
intent.putExtra(EXTRA_DEVICE_ADDRESS, address);
setResult(Activity.RESULT_OK, intent);
BluetoothDevice device = (BluetoothDevice) view.getTag();
showEquipementActivity(device);
}
Et le Fichier XML :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/ImageView_tactea"
android:layout_width="200dp"
android:layout_height="75dp"
android:src="@drawable/tactea"
android:layout_gravity="center"
android:visibility="visible" />
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip" >
<TextView
android:id="@+id/textView1"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/label_list_of_devices"
android:textSize="17dip"
android:textStyle="bold" />
<Button
android:id="@+id/buttonScan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_scan" />
</LinearLayout>
<ListView
android:id="@+id/listViewDevices"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" >
</ListView>
</LinearLayout>
Ce fichier XML est d'afficher de bluetooth de dispositifs et de nouvelles périphériques.
Pouvez-vous m'aider ?
Comment changer ces lignes ?
String info = ((TextView) view).getText().toString(); // HERE IS THE ISSUE
String address = info.substring(info.length() - 17);
Mise à jour: j'obtiens l'erreur suivante:
05-01 14:39:33.150: E/AndroidRuntime(7160): FATAL EXCEPTION: main
05-01 14:39:33.150: E/AndroidRuntime(7160): java.lang.NullPointerException
05-01 14:39:33.150: E/AndroidRuntime(7160): at com.example.cajou.DiscoverDevicesActivity.onItemClick(DiscoverDevicesActivity.java:179)
05-01 14:39:33.150: E/AndroidRuntime(7160): at android.widget.AdapterView.performItemClick(AdapterView.java:301)
05-01 14:39:33.150: E/AndroidRuntime(7160): at android.widget.AbsListView.performItemClick(AbsListView.java:1276)
Mise à JOUR 2 :
J'ai essayé :
TextView textview=(TextView) ((LinearLayout)view).findViewById(R.id.textView1);
String info = textview.getText().toString();
Mais j'ai un problème avec cette ligne :
String info = textview.getText().toString();
Mise à JOUR 3 :
J'ai essayé :
LinearLayout ll = (LinearLayout) view;
TextView tv = (TextView) ll.findViewById(R.id.textView1);
final String info = tv.getText().toString();
Mais même problème...
Cette ligne est la question :
final String info = tv.getText().toString();
- comment êtes-vous en remplissant le ListView? Avez-vous votre adaptateur personnalisé?
- Publier vos personnalisée listrow fichier xml
Vous devez vous connecter pour publier un commentaire.
utiliser uniquement
Utilisation
Le xml fichier de mise en page que vous avez fourni n'est pas nécessaire ici. La vue de la liste de la ligne du fichier est coupable .donc, utiliser l'Id de Textview qui est mentionné dans row.xml .
getText()
retourne unEditableText
, pas unString
. Vous devez utiliser letoString()
méthode de le jeter dans unString
type: