我如何 post radiogroup value(radiobutton text) 使用改造?
how do i post radiogroup value(radiobutton text) using retrofit?
我正在尝试 post radiogroup 值(radiobutton 文本)通过 post 请求使用改造....但它不起作用...下面我尝试了该方法
我的布局,其中单选组是:-
<RadioGroup
android:id="@+id/radioGrp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@id/confregpass"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/gendertext"
android:paddingLeft="8dp"
android:paddingRight="8dp"
>
<RadioButton
android:id="@+id/radioM"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:textColor="#ffffff"
android:checked="true"
android:layout_weight="0.5"
android:textSize="14dp"
android:text="M"
android:buttonTint="#ffffff"
/>
<RadioButton
android:id="@+id/radioF"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:checked="false"
android:textColor="#ffffff"
android:layout_weight="0.5"
android:textSize="14dp"
android:text="F"
android:buttonTint="#ffffff"
/>
</RadioGroup>
这里是radiogroup的方法:-请帮帮我
var gender = (findViewById<View>(R.id.radioGrp) as RadioGroup).clearCheck().toString()
radioGrp.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
if (checkedId != -1) {
gender = (findViewById<View>(checkedId) as RadioButton).text.toString()
} else {
gender = ""
}
})
这是我的改造方法:-你会看到我在哪里使用性别-->
RetrofitClient.instance.createUser(first_name, last_name, email, password, confirm_password,gender ,phone_no)
.enqueue(object: Callback<DefaultResponse>{
override fun onFailure(call: Call<DefaultResponse>, t: Throwable) {
Toast.makeText(applicationContext, t.message, Toast.LENGTH_LONG).show()
}
override fun onResponse(call: Call<DefaultResponse>, response: Response<DefaultResponse>) {
var res = response
if (response.isSuccessful() && response.body() != null) {
SharedPrefManager.getInstance(applicationContext)
.saveUser(response.body()?.data!!)
val intent = Intent(applicationContext, HomeActivity::class.java)
intent.flags =
Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
Toast.makeText(
applicationContext,
res.body()?.message,
Toast.LENGTH_LONG
).show()
Log.d("kjsfgxhufb",response.body()?.status.toString())
startActivity(intent)
finish()
}
else{
Toast.makeText(
applicationContext, (response.body().toString())
,
Toast.LENGTH_LONG
).show()
Log.d("edgerg", "" + res.body()?.message)
Log.d("edgerg", "" + response.message())
}
}
})
以下是我在 posting/registering
之后进入 postman 的输出
......
"profile_pic": null,
"country_id": null,
"gender": "kotlin.Unit",
"phone_no": "1234567890",
.......
什么kotlin.Unit????
我认为我在获取单选按钮文本值时做错了请帮助我...
您现在遇到的问题肯定是它采用默认值,在本例中为 Kotlin.Unit,如果您手动选择女性,它可能对您有用。
我认为最正确的方法是在调用 createUser 函数时选择单选按钮,而不是每次触摸项目时都选择侦听器。
val selectedId: Int = radioGrp.checkedRadioButtonId
var gender = if (selectedId != -1) {
val selectedRadioButton =
findViewById<RadioButton>(selectedId)
selectedRadioButton.text.toString()
} else {
""
}
我正在尝试 post radiogroup 值(radiobutton 文本)通过 post 请求使用改造....但它不起作用...下面我尝试了该方法
我的布局,其中单选组是:-
<RadioGroup
android:id="@+id/radioGrp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@id/confregpass"
android:layout_marginTop="20dp"
android:layout_toRightOf="@id/gendertext"
android:paddingLeft="8dp"
android:paddingRight="8dp"
>
<RadioButton
android:id="@+id/radioM"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:textColor="#ffffff"
android:checked="true"
android:layout_weight="0.5"
android:textSize="14dp"
android:text="M"
android:buttonTint="#ffffff"
/>
<RadioButton
android:id="@+id/radioF"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:checked="false"
android:textColor="#ffffff"
android:layout_weight="0.5"
android:textSize="14dp"
android:text="F"
android:buttonTint="#ffffff"
/>
</RadioGroup>
这里是radiogroup的方法:-请帮帮我
var gender = (findViewById<View>(R.id.radioGrp) as RadioGroup).clearCheck().toString()
radioGrp.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
if (checkedId != -1) {
gender = (findViewById<View>(checkedId) as RadioButton).text.toString()
} else {
gender = ""
}
})
这是我的改造方法:-你会看到我在哪里使用性别-->
RetrofitClient.instance.createUser(first_name, last_name, email, password, confirm_password,gender ,phone_no)
.enqueue(object: Callback<DefaultResponse>{
override fun onFailure(call: Call<DefaultResponse>, t: Throwable) {
Toast.makeText(applicationContext, t.message, Toast.LENGTH_LONG).show()
}
override fun onResponse(call: Call<DefaultResponse>, response: Response<DefaultResponse>) {
var res = response
if (response.isSuccessful() && response.body() != null) {
SharedPrefManager.getInstance(applicationContext)
.saveUser(response.body()?.data!!)
val intent = Intent(applicationContext, HomeActivity::class.java)
intent.flags =
Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
Toast.makeText(
applicationContext,
res.body()?.message,
Toast.LENGTH_LONG
).show()
Log.d("kjsfgxhufb",response.body()?.status.toString())
startActivity(intent)
finish()
}
else{
Toast.makeText(
applicationContext, (response.body().toString())
,
Toast.LENGTH_LONG
).show()
Log.d("edgerg", "" + res.body()?.message)
Log.d("edgerg", "" + response.message())
}
}
})
以下是我在 posting/registering
之后进入 postman 的输出 ......
"profile_pic": null,
"country_id": null,
"gender": "kotlin.Unit",
"phone_no": "1234567890",
.......
什么kotlin.Unit????
我认为我在获取单选按钮文本值时做错了请帮助我...
您现在遇到的问题肯定是它采用默认值,在本例中为 Kotlin.Unit,如果您手动选择女性,它可能对您有用。
我认为最正确的方法是在调用 createUser 函数时选择单选按钮,而不是每次触摸项目时都选择侦听器。
val selectedId: Int = radioGrp.checkedRadioButtonId
var gender = if (selectedId != -1) {
val selectedRadioButton =
findViewById<RadioButton>(selectedId)
selectedRadioButton.text.toString()
} else {
""
}