2012-08-13 3 views
4

J'ai un petit problème avec le EditText créé dynamiquement où je saisis du texte via un petit clavier que j'ai créé, en remplacement de l'original Android. Le texte est inséré avec l'ajout, mais la taille de EditText ne correspond pas au texte. Pourquoi?La taille de l'EditText ne correspond pas au contenu

avec cette solution:

EditText et = new EditText(myContext); 

LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

et.setLayoutParams(params); 

J'ai cette erreur:

E/AndroidRuntime(9544): FATAL EXCEPTION: main 
E/AndroidRuntime(9544): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.TableRow$LayoutParams 
E/AndroidRuntime(9544):  at android.widget.TableRow.mapIndexAndColumns(TableRow.java:162) 
E/AndroidRuntime(9544):  at android.widget.TableRow.getVirtualChildCount(TableRow.java:147) 
E/AndroidRuntime(9544):  at android.widget.TableRow.getColumnsWidths(TableRow.java:287) 
E/AndroidRuntime(9544):  at android.widget.TableLayout.findLargestCells(TableLayout.java:500) 
E/AndroidRuntime(9544):  at android.widget.TableLayout.measureVertical(TableLayout.java:465) 
E/AndroidRuntime(9544):  at android.widget.TableLayout.onMeasure(TableLayout.java:431) 
E/AndroidRuntime(9544):  at android.view.View.measure(View.java:12723) 
E/AndroidRuntime(9544):  at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1163) 
E/AndroidRuntime(9544):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
E/AndroidRuntime(9544):  at android.widget.ScrollView.onMeasure(ScrollView.java:312) 
E/AndroidRuntime(9544):  at android.view.View.measure(View.java:12723) 
E/AndroidRuntime(9544):  at android.widget.HorizontalScrollView.measureChildWithMargins(HorizontalScrollView.java:1159) 
E/AndroidRuntime(9544):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
E/AndroidRuntime(9544):  at android.widget.HorizontalScrollView.onMeasure(HorizontalScrollView.java:303) 
E/AndroidRuntime(9544):  at android.view.View.measure(View.java:12723) 
E/AndroidRuntime(9544):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
E/AndroidRuntime(9544):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
E/AndroidRuntime(9544):  at android.view.View.measure(View.java:12723) 
E/AndroidRuntime(9544):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
E/AndroidRuntime(9544):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
E/AndroidRuntime(9544):  at android.view.View.measure(View.java:12723) 
E/AndroidRuntime(9544):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
E/AndroidRuntime(9544):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 
E/AndroidRuntime(9544):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 
E/AndroidRuntime(9544):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 
E/AndroidRuntime(9544):  at android.view.View.measure(View.java:12723) 
E/AndroidRuntime(9544):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
E/AndroidRuntime(9544):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
E/AndroidRuntime(9544):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2092) 
E/AndroidRuntime(9544):  at android.view.View.measure(View.java:12723) 
E/AndroidRuntime(9544):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064) 
E/AndroidRuntime(9544):  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 
E/AndroidRuntime(9544):  at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(9544):  at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(9544):  at android.app.ActivityThread.main(ActivityThread.java:4624) 
E/AndroidRuntime(9544):  at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(9544):  at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime(9544):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
E/AndroidRuntime(9544):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
E/AndroidRuntime(9544):  at dalvik.system.NativeStart.main(Native Method) 
+0

oui, je créé un petit clavier et désactiver classique Android – whiteTIGER

+0

utilisation wrap_content – Doomsknight

+0

je veux autoSize la EditText par le contenu, et je dois le faire de façon dynamique en Java – whiteTIGER

Répondre

1
import android.widget.LinearLayout.LayoutParams; 

Ajoutez le paramètre à WRAP_CONTENT. Et également définir la disposition de hauteur souhaitée, remplir ou envelopper. Le premier est la largeur, le second est la hauteur.

EditText et = new EditText(myContext); 

LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

et.setLayoutParams(params); 
+0

Votre solution ne fonctionne pas pour moi, parce que mon EditText créé dynamiquement, sont insérés dans un système de TableRow, HorizontalScrollView, Scrollview, TableLayout et FrameLyaout. J'ai besoin de quelque chose qui agit directement sur les mesures de l'EditText – whiteTIGER

+0

C'est une manière programmatique de définir de telles mises en page. Par opposition à l'utilisation de XML. Lorsque vous créez dynamiquement votre EditText, appliquez-le. – Doomsknight

+0

J'ai édité ma question avec logcat – whiteTIGER

Questions connexes