Попытка показать продукт двух EditTexts как TextView в другом действии - PullRequest
1 голос
/ 16 февраля 2020

У меня тонна проблем с передачей продукта двух EditTexts в TextView в другом действии. Вот мой код для MainActivity.

class MainActivity : AppCompatActivity() {

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

        val button1: Button = findViewById(R.id.button1)
        val editText1: EditText = findViewById(R.id.editText1)
        val editText2: EditText = findViewById(R.id.editText2)
        val firstNumber = editText1.toString().toInt()
        val secondNumber = editText2.toString().toInt()
        val product = firstNumber * secondNumber

        button1.setOnClickListener{

            val intent = Intent(this, Activity2::class.java)
            intent.putExtra("RESULT_PRODUCT", product)
            startActivity(intent)
        }
    }
}

Вот мой код для Activity2:

class Activity2 : AppCompatActivity() {

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

        val product = intent.getIntExtra("RESULT_SUM", 0)
        textView1.text = product.toString()
    }
}

Я относительно новичок в Kotlin и Android Studio, но это вызвало сбои влево и вправо.

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

Прежде всего, Вы должны вычислить product внутри OnClickListener, чтобы получить правильный результат.

button1.setOnClickListener{

    val firstNumber = editText1.text.toString().trim()
    val secondNumber = editText2.text.toString().trim()

    if(!(firstNumber.isEmpty() or secondNumber.isEmpty())) {
        val product = firstNumber.toInt() * secondNumber.toInt()

        val intent = Intent(this, Activity2::class.java)
        intent.putExtra("RESULT_PRODUCT", product)
        startActivity(intent)
    } else {
        //Show messages
    }
}

А затем вам нужно используйте точный ключ RESULT_PRODUCT , который вы используете в своей деятельности для передачи данных через intent

val product = intent.getIntExtra("RESULT_PRODUCT", 0)
0 голосов
/ 16 февраля 2020

Вы передаете «RESULT_PRODUCT» от MainActivity, но получаете «RESULT_SUM» в своей Activity2. Вы должны использовать intent.getIntExtra("RESULT_PRODUCT", 0) во втором упражнении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...