В моем приложении есть счетчик для выбора пола для пользователей, но я не уверен, как передать значение счетчика внутри моего method.POST
и как я могу отправить выбранное значение
Вот мой POST код:
fun editUserProfile(context: Context,id: Int, gender: String, email: String, firstName: String, lastName: String, mobile: String, address: String, whatsapp: String, complete: (Boolean) -> Unit) {
val jsonBody = JSONObject()
jsonBody.put("id", id)
jsonBody.put("gender", gender)
jsonBody.put("Email", email)
jsonBody.put("FirstName", firstName)
jsonBody.put("LastName", lastName)
jsonBody.put("Mobile", mobile)
jsonBody.put("Address", address)
jsonBody.put("whatsapp", whatsapp)
val requestBody = jsonBody.toString()
val editRequest = object : StringRequest(Method.POST, URL_EDIT_USER, Response.Listener {response ->
println(response)
complete(true)
}, Response.ErrorListener { error ->
Log.d("ERROR", "Could not edit user: $error")
complete(false)
}) {
override fun getBodyContentType(): String {
return "application/json; charset=utf-8"
}
override fun getBody(): ByteArray {
return requestBody.toByteArray()
}
}
Volley.newRequestQueue(context).add(editRequest)
}
Вот мой EditUserActivity
:
class EditUserActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.edit_user)
editSpinner.visibility = View.INVISIBLE
val genderList = arrayOf("","Female", "Male")
val arrayAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, genderList)
genderSpinner.adapter = arrayAdapter
genderSpinner.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onNothingSelected(parent: AdapterView<*>?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
// findViewById<TextView>(R.id.userGender).text = genderList[position]
}
}
EditFirstName.setText(UserDataService.firstName)
EditLastName.setText(UserDataService.lastName)
EditEmail.setText(UserDataService.email)
EditMobile.setText(UserDataService.mobile)
EditWhatsapp.setText(UserDataService.whatsapp)
EditAddress.setText(UserDataService.address)
}
fun editButtonClicked(view: View) {
enableSpinner(true)
val firstName = EditFirstName.text.toString()
val lastName = EditLastName.text.toString()
val email = EditEmail.text.toString()
val mobile = EditMobile.text.toString()
val whatsapp = EditWhatsapp.text.toString()
val address = EditAddress.text.toString()
val gender = genderSpinner
if (firstName.isNotEmpty() && lastName.isNotEmpty() && email.isNotEmpty() && mobile.isNotEmpty() && address.isNotEmpty() && whatsapp.isNotEmpty()) {
AuthService.editUserProfile(this, UserDataService.id,gender,email,firstName,lastName,mobile, address, whatsapp) { editSuccess ->
if (editSuccess) {
val userDataChange = Intent(BROADCAST_USER_DATA_CHANGE)
LocalBroadcastManager.getInstance(this).sendBroadcast(userDataChange)
enableSpinner(false)
UserDataService.firstName = firstName
UserDataService.lastName = lastName
UserDataService.email = email
UserDataService.mobile = mobile
UserDataService.whatsapp = whatsapp
UserDataService.address = address
UserDataService.gender = gender.toString()
val intent = Intent(this, UserProfile::class.java)
startActivity(intent)
finish()
}
else {
errorToast()
}
}
} else {
Toast.makeText(this, "Make sure the fields are filled.", Toast.LENGTH_LONG).show()
enableSpinner(false)
}
}
fun errorToast() {
Toast.makeText(this, "Something went wrong.", Toast.LENGTH_LONG).show()
enableSpinner(false)
}
fun enableSpinner(enable: Boolean) {
if (enable) {
editSpinner.visibility = View.VISIBLE
EditButton.isEnabled = false
EditAddress.isEnabled = false
EditEmail.isEnabled = false
EditFirstName.isEnabled = false
EditLastName.isEnabled = false
EditWhatsapp.isEnabled = false
EditMobile.isEnabled = false
} else {
editSpinner.visibility = View.INVISIBLE
EditButton.isEnabled = true
EditFirstName.isEnabled = true
EditLastName.isEnabled = true
EditEmail.isEnabled = true
EditAddress.isEnabled = true
EditMobile.isEnabled = true
EditWhatsapp.isEnabled = true
}
}
}
Я не уверен, какое значение передать в мой val gender =
, как я могу взять выбранное значение и передать его через мои почтовые данные?