Как я могу сделать так, чтобы мои значения int в отображении счетчика отображались в виде Текстовых значений в моем пользовательском интерфейсе внутри счетчика? - PullRequest
0 голосов
/ 05 марта 2020

В моем приложении есть счетчик полов со значениями (0 и 1) 0 = "Male" и 1 = "Female". Я использовал их как целые, потому что это то, что требуется в POST методе отправки информации о пользователе. Как я могу отправить значения как Int, но сделать так, чтобы они отображались как Текст в моем приложении?

Вот мой код действия:

class EditUserActivity : AppCompatActivity() {

    var genderSelected = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.edit_user)

        editSpinner.visibility = View.INVISIBLE

        val genderList = arrayOf(0, 1)
        genderSelected = genderList[0]

        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) {
                  genderSelected = genderList.get(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 = genderSelected

        if (firstName.isNotEmpty() && lastName.isNotEmpty() && email.isNotEmpty() && mobile.isNotEmpty() && address.isNotEmpty() && whatsapp.isNotEmpty()) {
            AuthService.editUserProfile(this, UserDataService.id,email,firstName,lastName,gender,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()
                    enableSpinner(false)
                }
            }
        } 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
            genderSpinner.isEnabled = false
        } else {
            editSpinner.visibility = View.INVISIBLE
            genderSpinner.isEnabled = true
            EditButton.isEnabled = true
            EditFirstName.isEnabled = true
            EditLastName.isEnabled = true
            EditEmail.isEnabled = true
            EditAddress.isEnabled = true
            EditMobile.isEnabled = true
            EditWhatsapp.isEnabled = true
        }
    }
}

Значения установлены внутри arrayOf и позже вызывается в var genderSelected = 0 для отправки этого значения через мой POST-код, когда пользователь отправляет

1 Ответ

1 голос
/ 05 марта 2020

сделайте это, замените ваш код

val genderList = arrayOf("Male", "Female")

, когда вы передадите это в API вызовите это

val gender = if (genderSelected == "Male")
    0
else
    1
...