У меня есть TableLayout, который я создаю программно, который работает нормально. Однако я не могу получить доступ к дочерним элементам TableRow. row.getChildAt (x) приводит к «неразрешенной ссылке»
По выводу журнала мне кажется, что строка на самом деле имеет тип TableRow, поэтому я не уверен, почему это не удается. Я новичок в Kotlin и Android, поэтому мне нужна помощь.
У меня вопрос: почему row.getChildAt доступен при создании TableView, но не доступен позже при итерации через TableView?
package com.example.daedalus.myapplication
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.TableRow
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_test_table.*
class testTable : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test_table)
val number = 5
for(i in 0 until number) {
val row = TableRow(this)
val cell1 = TextView(this)
cell1.text = "Hello"
val cell2 = TextView(this)
cell2.text = "Friend"
row.addView(cell1)
row.addView(cell2)
tableLayout.addView(row)
// row.getChildAt(x) works here
}
val view = Button(this)
view.text = "Test"
view.setOnClickListener(){
for(i in 0 until tableLayout.childCount) {
val row = tableLayout.getChildAt(i)
//row.getChildAt(x) doesnt work here. Unresolved reference
Log.i("MyApp",row.toString())
}
}
linearLayout.addView(view)
}
}
XML:
<TableLayout
android:id="@+id/tableLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</TableLayout>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="0dp"
android:layout_height="84dp"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="32dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tableLayout"></LinearLayout>
</android.support.constraint.ConstraintLayout>
Logcat Output
09-11 14:08:09.823 26050-26050/com.example.daedalus.myapplication I/MyApp: android.widget.TableRow{afec180 V.E...... ........ 0,0-954,51}
android.widget.TableRow{66d93b9 V.E...... ........ 0,51-954,102}
android.widget.TableRow{9c073fe V.E...... ........ 0,102-954,153}
android.widget.TableRow{ebcf75f V.E...... ........ 0,153-954,204}
09-11 14:08:09.824 26050-26050/com.example.daedalus.myapplication I/MyApp: android.widget.TableRow{c4e75ac V.E...... ........ 0,204-954,255}