我目前正在学习Kotlin课程,在这里,Dialog
使用了一个xml文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageButton
android:id = "@+id/ib_small_brush"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/small"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/ib_medium_brush"
/>
<ImageButton
android:id = "@+id/ib_medium_brush"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/medium"
app:layout_constraintTop_toBottomOf="@id/ib_small_brush"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/ib_large_brush"
/>
<ImageButton
android:id = "@+id/ib_large_brush"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/medium"
app:layout_constraintTop_toBottomOf="@id/ib_medium_brush"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
我遇到了这样的问题:当我开始输入android:id
和android:src
等属性时,它们不会自动弹出,这与其他属性不同。
这是我的MainActivity
:
class MainActivity : AppCompatActivity() {
private var drawingView: DrawingView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
drawingView = findViewById(R.id.drawing_view)
drawingView?.setSizeForBrush(20.toFloat())
}
private fun showBrushSizeChooserDialog(){
val brushDialog = Dialog(this)
brushDialog.setContentView(R.layout.dialog_brush_size)
brushDialog.setTitle("Brush size: ")
val smallButton = brushDialog.ib
}}
在本课程中,ImageViews
通过brushDialog.ib_small_brush
访问,然后用于在其上设置onClickListeners等。然而,这对我来说是不可能的。这种方法是否过时(使用片段代替),或者我的代码或Android Studio是否存在根本性错误?
干杯。
1条答案
按热度按时间lyr7nygr1#
这应该是brushDialog.ib_小刷子
你还没有展示你使用的课程示例,所以我来猜一猜。
brushDialog.ib_small_brush
看起来像是你在尝试使用ViewBinding,但是brushDialog
是Dialog
,所以这当然是行不通的。你需要为这个布局文件创建一个ViewBinding,类似于:
有关详细信息,请查看the documentation on ViewBinding。