что я продолжаю получать ClassCastExpection - PullRequest
0 голосов
/ 24 марта 2019

Когда я пытаюсь запустить свой код, я получаю эту ошибку в logcat

java.lang.ClassCastException: android.widget.TableLayout $ LayoutParams нельзя привести к android.widget.TableRow $ LayoutParams

Я пытаюсь получить параметр макета, чтобы я мог изменить его динамически.

вот код Java

    TableRow k1 = (TableRow)main.getChildAt(main.getChildCount()-1);
    TableRow.LayoutParams k2 = (TableRow.LayoutParams)k1.getLayoutParams();
    Log.e(TAG, "---------Displaying k2- \t" + k2);

main представляет TableLayout, который уже существует вот XML-файл

        <TableLayout
            android:id="@+id/abit_table"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="32dp">

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="13dp">

                <TextView
                    android:id="@+id/ability"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/ability"
                    android:textStyle="bold" />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="32dp">

                <TextView
                    android:id="@+id/abil"
                    android:layout_width="147dp"
                    android:layout_height="match_parent"
                    android:text="@string/ability"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/mastery"
                    android:layout_width="82dp"
                    android:layout_height="match_parent"
                    android:text="@string/master"
                    android:textStyle="bold" />
            </TableRow>
        </TableLayout>

Может кто-нибудь объяснить мне, что означает эта ошибка и как ее решить ?? любая помощь будет оценена

1 Ответ

0 голосов
/ 24 марта 2019

, как говорится в исключении, k1.getLayoutParams() вернет TableLayout.LayoutParams, а не TableRow.LayoutParams

, измените код на:

TableRow k1 = (TableRow)main.getChildAt(main.getChildCount()-1);
TableLayout.LayoutParams k2 = (TableLayout.LayoutParams)k1.getLayoutParams();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...