Kotlin Android扩展:如何获得对包含在另一个布局中的布局的视图的引用?
我有一个包含另一个布局的布局:
activity_main.xml中:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView"/> <include layout="@layout/included_layout" /> </LinearLayout>
included_layout.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/includedTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Included TextView"/> </LinearLayout>
我如何获得对包含的布局中的TextView的引用? 它不支持(还)吗?
主要活动:
import android.app.Activity import android.os.Bundle import android.support.v7.app.AppCompatActivity import kotlinx.android.synthetic.activity_main.* class MainActivity : AppCompatActivity(){ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) textView.text = "text" // works! textViewInclude.text = "textInclude" // does not work: "Unresolved reference: textViewInclude " } }
您应该import
包含的布局。
import android.app.Activity import android.os.Bundle import android.support.v7.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.included_layout.* // Here class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // From activity_main.textView textView.text = "text" // From included_layout.textViewInclude textViewInclude.text = "textInclude" } }