我想访问包含在NavigationView的headerLayout中的TextView。是否可以使用Kotlin android扩展程序访问该视图?我使用了这个方法,但TextView(此处为txtName)始终为null。
这是我的 activity_main.xml
res.sendFile(__dirname + "/someadditionalfoldrs/main.html")
nav_header_splash.xml
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_splash"
app:menu="@menu/activity_splash_drawer" />
MainActivity.kt 我已导入
<TextView
android:id="@+id/txtName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/txt1"
android:layout_below="@+id/imageView"
android:text="@string/name"
android:textSize="18sp"
android:textColor="@color/white" />
在Activity类的import kotlinx.android.synthetic.main.nav_header_splash.*
中,我将文本设置为
onCreate()
app文件夹的build.gradle
txtName.text = "Sample Code"
我项目的build.gradle
apply plugin: 'kotlin-android-extensions'
我的代码中有错误吗?请帮忙。我是Kotlin的新人。
答案 0 :(得分:9)
不要import kotlinx.android.synthetic.main.nav_header_splash.*
它可以从主文件本身获得
代替import kotlinx.android.synthetic.main.nav_header_splash.view.*
并使用
获取视图val header = mNavigationView.getHeaderView(0)
header.txtName.text = "Sample Code"