问题解决ViewById在Kotlin - android:id不等于view:id ?(新手的问题)



我对Kotlin非常陌生,面临以下挑战:我定义了一个合并了多个其他TableLayout的TableLayout。我把它们看作是我的UI的一种正方形,我想让它们简单地可点击。

所以我在MultiSquare.xml中的TableRow中定义了一行3个tableview:

<TableRow
android:padding="5dp">
<include layout="@layout/basesquare" android:id="@+id/square01"/>
<include layout="@layout/basesquare" android:id="@+id/square02"/>
<include layout="@layout/basesquare" android:id="@+id/square03"/>
</TableRow>

并尝试解决他们在我的MultiSquareActivity如下:

val mySquare01 : TableLayout = findViewById(R.id.square01)
mySquare01.setOnClickListener {
tvOutputMessage = findViewById(R.id.textView)
tvOutputMessage.text = "Table" + mySquare01.id +  " was clicked!"
}

然而,我只是收到错误消息,R.id。square01是空的——哎,我真的不明白为什么。希望有人能帮忙^^

问题是:如何解决square1在ViewActivity?

好吧,我自己弄清楚了——我的方法有两个问题:

1)。我必须去掉square。xml中的merge Tag,合并到multisquare。xml

2)。我必须设置一个Id,甚至为我的子表的表布局在包含的表,这听起来有点奇怪,但它的工作。

Square.xml:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:width="165dp">
<TableRow>
<include layout="@layout/basetable" android:id="@+id/basetable01"/>
<include layout="@layout/basetable" android:id="@+id/basetable02"/>
<include layout="@layout/basetable" android:id="@+id/basetable03"/>
</TableRow>
</TableLayout>

Multisquare.xml:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*"
android:width="1545dp"
android:padding="1.5dp">
<TableRow android:padding="5dp">
<include layout="@layout/basesquare" android:id="@+id/square01"/>
<include layout="@layout/basesquare" android:id="@+id/square02"/>
<include layout="@layout/basesquare" android:id="@+id/square03"/>
</TableRow>
</TableLayout>

MultiSquareActivity:

private lateinit var mySquare01 : TableLayout
mySquare01 = findViewById(R.id.square01)
val square01basetable01: TableLayout = mySquare01.findViewById(R.id.basetable01)

square01basetable01.setOnClickListener {
...
}

相关内容

  • 没有找到相关文章

最新更新