setLayoutParams() la méthode ne fonctionne pas

J'ai fais un code qui modifie sa taille en fonction de la taille de l'écran son application fournit. Il obtient la totalité de la largeur et de la hauteur(ou la vue de w et h) par onSizeChanged() et onDraw() les méthodes de Vue.

Il a bien fonctionné dans un autre code mais maintenant, il affiche un message d'erreur à chaque fois que j'ai essayé de mettre de la commande " setLayoutParams ()', pourriez-vous svp m'aider à comprendre ce problème? Le setLayoutParams() ne fait pas de travailler n'importe où dans le code. Ci-dessous est la classe principale de code.

public class ManipulateDesign extends Activité { 
private LinearLayout ll; 
private le ScrollView sv; 
private TextView télévision; 
/** Appelée lorsque l'activité est d'abord créé. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.présentation.main); 

ll = (LinearLayout) findViewById(R.id.ll); 
sv = (le ScrollView) findViewById(R.id.sv); 
tv = new TextView(ce); 

tv.setText("Vous êtes dans la première ScrollView\n" + 
"- Univers Vivant \n" + 
"Voulez (sur une étoile) j'Espère être de nouveau)\n" + 
"vous pouvez trouver, quand tout est fait et, à travers!\n" + 
"Si tout, fait un vœu à enregistrer, la star serait-il en vain?\n" + 
"d'autant qu'il détient, trop chers pour partie, de nombreuses façons de voir la lumière de réponses!\n" + 
"Pour tous était une fois, juste de loin, que l'on espère tous disparu, de sorte qu'aucune ne peut briser, ni cassant mon coeur\n" + 
"non, plus jamais, jusqu'à la fin"); 

sv.addView(télévision); 
ChangeSizeView csv = new ChangeSizeView(getcontexteapplication()); 
ll.addView(csv); 
} 

class ChangeSizeView extends Afficher{ 
int newWidth; 
int newHeight; 

public ChangeSizeView(Contexte contexte) { 
super(contexte); 
} 

@Override 
protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
newWidth = w; 
newHeight = h; 
super.onSizeChanged(w, h, oldw, oldh); 
} 

@Override 
protected void onDraw(Toile toile) { 
//CETTE COMMANDE FAIT UNE ERREUR(et pas seulement dans cette méthode, mais n'importe où dans le code entier) MAIS BIEN FONCTIONNÉ DANS un AUTRE CODE  
sv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, (newHeight - 100))); 

super.onDraw(toile); 
} 
} 
}

Et c'est mon main.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/ll"
    >
    <ScrollView android:id="@+id/sv"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content">
    </ScrollView>
</LinearLayout>

C'est le logcat logo qui affiche des messages d'erreur


04-11 06:39:52.148: ERROR/AndroidRuntime(2952): FATAL EXCEPTION: main
04-11 06:39:52.148: ERROR/AndroidRuntime(2952): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:355)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.view.View.measure(View.java:8171)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.view.View.measure(View.java:8171)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.view.View.measure(View.java:8171)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.view.View.measure(View.java:8171)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.os.Looper.loop(Looper.java:123)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at android.app.ActivityThread.main(ActivityThread.java:4627)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at java.lang.reflect.Method.invokeNative(Native Method)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at java.lang.reflect.Method.invoke(Method.java:521)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-11 06:39:52.148: ERROR/AndroidRuntime(2952):     at dalvik.system.NativeStart.main(Native Method)
Pourriez-vous être plus précis à propos de l'erreur, par exemple post LogCat de sortie s'il vous plaît?
Je vous remercie pour votre réponse rapide. Je vais le télécharger dès maintenant.

OriginalL'auteur June | 2011-04-11