12

Вопрос по android-widget, android, android-layout – Получение ClassCastException при попытке вставлять RelativeLayout дианмически?

setContentView(R.layout.main2); out= new ArrayList(); llay =(RelativeLayout) findViewById(R.id.displayPoll); RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); ...

В нем печатается последний оператор в LogCat. Это Log.v ("my", "rasasched"); и тогда возникает исключение.

от Priyank Bharad

Можете ли вы включить всю трассировку стека? Следует сказать, какая строка выдает исключение

от slayton

может кто-нибудь помочь<a href="http://stackoverflow.com/questions/30951608/java-lang-classcastexception-android-view-viewgrouplayoutparams-cannot-be-cast" title="java lang classcastexception android view viewgrouplayoutparams cannot be cast">stackoverflow.com/questions/30951608/&#x2026;</a>

от Aditya

1 ответ

72

Ошибка здесь заключается в выборе подклассаLayoutParams.

Правильная версияLayoutParams создать экземпляр зависит отparent вид, который вы создаете,not the type of the view itself.

Посмотрите на дамп logcat:

04-06 20:30:49.372: E/AndroidRuntime(1093): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams
04-06 20:30:49.372: E/AndroidRuntime(1093):     at android.widget.ScrollView.onMeasure(ScrollView.java:301)

Android пытается типизировать экземплярRelativeLayout.LayoutParams к тому, что я считаю, должно бытьScrollView.LayoutParamsпотому что вашRelativeLayout находится внутриScrollView.

Исправление должно состоять в изменении типа параметров макета, который вы используете вRelativeLayout вScrollView.LayoutParams.

Похожие вопросы