2012-03-18 3 views
0

J'utilise TextView personnalisé. Mais quand je le récupère en utilisant find view par Id, j'obtiens ClassCastException. Je l'utiliser dans un fichier XML comme ceci:ClassCastException dans findViewById lors de l'utilisation de la vue personnalisée

<View class="com.android.smsapp.MsgTextView" android:id="@+id/text"

et l'utiliser dans le fichier java comme celui-ci.

MsgTextView text = (MsgTextView) row.findViewById(R.id.text);

Qu'est-ce que je fais mal?


@Pavandroid

Je l'ai inclus dans le fichier correct

package com.android.smsapp; 

    import android.content.Context; 
    import android.util.AttributeSet; 
    import android.widget.TextView; 

    public class MsgTextView extends TextView { 
    private String sender; 

    MsgTextView(Context c){ 
     super(c); 
    } 

    MsgTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    MsgTextView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    public void setSender(String s) { 
     sender = s; 
    } 

    public String getSender() { 
     return (sender); 
    } 
}` 

Aussi Quand je suis bien, LogCat montre une ligne de plus

03-19 14:30:41.476: E/AndroidRuntime(24089): Caused by: java.lang.NoSuchMethodException: MsgTextView(Context,AttributeSet).. But I have defined this constructor. 
+1

juste usee com.android.smsapp.MsgTextView au lieu de textview dans la partie xml et assurez-vous que votre MsgTextView classe étend textview –

Répondre

1

au lieu de ce qui précède code utilisez le code ci-dessous.

<com.android.smsapp.MsgTextView 
      android:id="@+id/text" 
      additional parameters here....> 
</com.android.smsapp.MsgTextView> 
+0

Essayé .. Mais maintenant, je me fais « 03-19 13: 03: 30,632: E/AndroidRuntime (22775): java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo {com.android.smsapp/com.android.smsapp.SMSAppActivity}: android.view.InflateException: ligne de fichier XML binaire # 22: erreur de classe de gonflage com.android.smsapp.MsgTextView " – Sumit

+0

Placez-vous le MsgTextView dans le bon package, par exemple, com.android.smsapp ?? Veuillez vérifier ceci et réessayer .... – Pavandroid

+0

Toujours le problème ... Tout a l'air bien ... J'ai collé MsgTextView class – Sumit

Questions connexes