kotlin中的findViewById(R.id.deleteButton)不能为null



我正试图创建一个名为";删除";在将删除用户不需要的闪卡的闪卡应用中。然而,每当我试图实现这个按钮时,我都会得到错误";findViewById(R.id.deleteButton(不能为null;。通常情况下,我会有一个显示我的抽认卡集的网格视图,如果我点击其中任何一个集,它会引导我找到该集中的抽认卡片。现在我已经尝试实现一个";删除";按钮在我的闪卡活动(当我点击闪卡集时激活的活动(中,每当我点击我的闪卡集时,android模拟器就会崩溃。

.kt代码:

class FlashcardSetDetailActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_linear)
val recyclerLinear = 
findViewById<RecyclerView>(R.id.recyclerLinear)
recyclerLinear.adapter = AdapterLinear(Flashcard.getHardcodedFlashcards())
val deleteButton: Button = findViewById(R.id.deleteButton)
deleteButton.setOnClickListener() {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
}
}
}

我的xml代码如下:

<TextView
android:id="@+id/my_textLinear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/my_textLinear2"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/my_textLinear2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="@color/black"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/my_textLinear"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/deleteButton"
android:layout_width="157dp"
android:layout_height="88dp"
android:text="Delete"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />

<androidx.constraintlayout.widget.constraintlayout>

忽略文本视图。他们只是向我展示我的抽认卡的标题和描述。我的按钮不起作用。有人能帮我纠正这个错误吗?谢谢

我建议您使用视图绑定,因为它是空安全的,也是类型安全的。因为我也面临这个问题,所以我开始使用视图绑定,这很容易,重点是它取代了findViewById((

根据上面的代码,您的删除按钮是在您的闪卡页面上定义的。activity_linear.xml中没有删除按钮,所以您得到了一个错误。您需要在Flashcard适配器中实现此按钮。

最新更新