为什么会出现此错误:androidx.constraintlayout.widget.constraintlayout无法强制转换为android.widget.TextView?
我刚刚开始使用Android studio,我在youtube上关注了这个教程: 但出于某种原因,我得到了这个错误:为什么会出现此错误:androidx.constraintlayout.widget.constraintlayout无法强制转换为android.widget.TextView?,android,android-studio,Android,Android Studio,我刚刚开始使用Android studio,我在youtube上关注了这个教程: 但出于某种原因,我得到了这个错误: androidx.constraintlayout.widget.constraintlayout无法强制转换为android.widget.TextView 我搜索了相同的错误,似乎有人遇到了相同的问题,因为他使用了相同ID的ConstraintLayout和TextView。但这不是我的情况: <?xml version="1.0" encoding
androidx.constraintlayout.widget.constraintlayout无法强制转换为android.widget.TextView
我搜索了相同的错误,似乎有人遇到了相同的问题,因为他使用了相同ID的ConstraintLayout和TextView。但这不是我的情况:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/resultsTextView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/rollButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="96dp"
android:layout_marginLeft="96dp"
android:layout_marginEnd="96dp"
android:layout_marginRight="96dp"
android:layout_marginBottom="24dp"
android:text="Roll"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<SeekBar
android:id="@+id/seekBar"
style="@style/Widget.AppCompat.SeekBar.Discrete"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginLeft="32dp"
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp"
android:layout_marginBottom="24dp"
android:max="10"
android:progress="3"
app:layout_constraintBottom_toTopOf="@+id/rollButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginLeft="24dp"
android:layout_marginBottom="16dp"
android:text="How many?"
app:layout_constraintBottom_toTopOf="@+id/seekBar"
app:layout_constraintStart_toStartOf="parent" />
<View
android:id="@+id/divider"
android:layout_width="409dp"
android:layout_height="1dp"
android:layout_marginBottom="16dp"
android:background="?android:attr/listDivider"
app:layout_constraintBottom_toTopOf="@+id/textView"
tools:layout_editor_absoluteX="1dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="144sp"
app:layout_constraintBottom_toTopOf="@+id/divider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
我会为任何试图帮助我的人感到高兴
MainActivity.kt:
package com.example.randomizer
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.SeekBar
import android.widget.TextView
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton = findViewById<Button>(R.id.rollButton)
val resultsTextView = findViewById<TextView>(R.id.resultsTextView)
val seekBar = findViewById<SeekBar>(R.id.seekBar)
rollButton.setOnClickListener {
val rand = Random().nextInt(seekBar.progress) + 1
resultsTextView.text = rand.toString()
}
}
}
package com.example.randomizer
导入androidx.appcompat.app.appcompat活动
导入android.os.Bundle
导入android.widget.Button
导入android.widget.SeekBar
导入android.widget.TextView
导入java.util*
类MainActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton=findviewbyd(R.id.rollButton)
val resultsTextView=findViewById(R.id.resultsTextView)
val seekBar=findviewbyd(R.id.seekBar)
rollButton.setOnClickListener{
val rand=Random().nextInt(seekBar.progress)+1
resultsTextView.text=rand.toString()
}
}
}
这里
val resultsTextView=findviewbyd(R.id.resultsTextView)
resultsTextView
是约束布局的id,而不是文本视图的id。改用R.id.textView2
。您的问题在这里:
val resultsTextView = findViewById<TextView>(R.id.resultsTextView)
val resultsTextView=findviewbyd(R.id.resultsTextView)
在您的布局中:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/resultsTextView"
还请在com.example.randomizer.MainActivity
中显示onCreate
实现。好的。添加到描述中。请看以下内容:
val resultsTextView = findViewById<TextView>(R.id.resultsTextView)
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/resultsTextView"