gpt4 book ai didi

android - RadioButton Get(java.lang.IllegalStateException:selectedRadioButton不能为null)

转载 作者:行者123 更新时间:2023-12-02 13:40:02 26 4
gpt4 key购买 nike

因此,我实现了一个简单的RadioGroup和RadioButton在Kotlin编程语言中的工作方式,并且我使用setOnClickListener方法使我的应用可以像其他应用一样单击,并且我使用Fragment来实现我的简单RadioGroup和RadioButton应用。
当我为此方法传递SetOnclick时:

 submitButton.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
val selectedId = surveyRadioGroup.checkedRadioButtonId
val selectedRadioButton = rootView.findViewById<RadioButton>(selectedId)
Log.d("TEST", selectedRadioButton.text.toString())

dismiss()
}
我出错了。
上面的代码充满了我的代码:
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.RadioButton
import android.widget.RadioGroup
import androidx.fragment.app.DialogFragment

class MyFragment : DialogFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val rootView: View = inflater.inflate(R.layout.dialog_fragment, container, false)
val cancelButton = rootView.findViewById<Button>(R.id.cancelButton)
var submitButton = rootView.findViewById<Button>(R.id.submitButton)
var surveyRadioGroup = rootView.findViewById<RadioGroup>(R.id.myradiogroup)


cancelButton.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
dismiss()
}
})

submitButton.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
val selectedId = surveyRadioGroup.checkedRadioButtonId
val selectedRadioButton = rootView.findViewById<RadioButton>(selectedId)
Log.d("TEST", selectedRadioButton.text.toString())

dismiss()
}

})
return rootView
}
}
这是我的dialog_fragment.xml,用于连接XML类和Kotlin类上述代码。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp">

<RadioGroup
android:id="@+id/myradiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp" />

<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="Exellent"
android:layout_marginTop="30dp"/>

<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="false"
android:text="Very GOOD"
tools:ignore="ObsoleteLayoutParam"
android:layout_marginTop="60dp"/>

<RadioButton
android:text="Good"
android:id="@+id/radioButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:layout_marginTop="90dp"/>


<RadioButton
android:text="Average"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:id="@+id/radioButton4"
android:layout_marginTop="120dp"/>

<RadioButton
android:text="Bad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:id="@+id/radioButton5"
android:layout_marginTop="150dp"/>

<Button
android:text="Submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="false"
android:id="@+id/submitButton"
android:layout_marginTop="200dp"
/>



<Button
android:text="cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="false"
android:id="@+id/cancelButton"
android:layout_marginTop="270dp"
/>
</RelativeLayout>

</RelativeLayout>
这个应用程式对Androidx提出了要求

最佳答案

selectedRadioButton为空,因为:

val selectedRadioButton = rootView.findViewById<RadioButton>(selectedId)
onCreateView()内部被调用,也就是说,此时 rootView尚未创建。
改为在 onViewCreated()中设置 View 。

关于android - RadioButton Get(java.lang.IllegalStateException:selectedRadioButton不能为null),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64408528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com