每当我尝试运行我的代码时,我都会在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>
有人可以向我解释此错误的含义以及如何解决吗? 任何帮助将不胜感激
答案 0 :(得分:0)
如异常所示,k1.getLayoutParams()
将返回TableLayout.LayoutParams
而不是TableRow.LayoutParams
将代码更改为此:
TableRow k1 = (TableRow)main.getChildAt(main.getChildCount()-1);
TableLayout.LayoutParams k2 = (TableLayout.LayoutParams)k1.getLayoutParams();