Получение значения Null при передаче данных через намерение к другому действию - PullRequest
0 голосов
/ 13 февраля 2020

Когда я выполняю отладку, я вижу, как первое действие отправляет правильный номер, но второе действие всегда получает нулевое значение. Спасибо за помощь.

Первое задание:

 val intent = Intent(this@InfBateria,ControlActivity::class.java)
 intent.putExtra(EXTRA_PERCENTAGE,batteryPercentage.toString())

Второе задание:

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

    m_address = intent.getStringExtra(Connect.EXTRA_ADDRESS)
    val m_percentage: String? = intent.getStringExtra(InfBateria.EXTRA_PERCENTAGE)
    textView9.text = m_percentage

[Изменить] Код задания (отличается от первого), который acttualy открывает да Вторая активность:

val intent = Intent(this,ControlActivity::class.java)
intent.putExtra(EXTRA_ADDRESS,address)
startActivity(intent)

1 Ответ

0 голосов
/ 13 февраля 2020

Если вы ничего не сделаете с этим намерением результата, оно ничего не сделает:

val intent = Intent(this@InfBateria,ControlActivity::class.java)
intent.putExtra(EXTRA_PERCENTAGE,batteryPercentage.toString())

Вам необходимо обновить намерение, которое вы отправляете для второго действия, например:

val intent = Intent(this, ControlActivity::class.java)
intent.putExtra(EXTRA_ADDRESS, address)
intent.putExtra(EXTRA_PERCENTAGE, batteryPercentage.toString())
startActivity(intent)

Тогда ваши действия получат оба дополнения. : -)


Если у вас есть три действия и вы хотите получить данные с 1-го по 3-е, вы делаете это так:

Первое действие:

val intent = Intent(this, SecondActivity::class.java)
intent.putExtra(ThirdActivity.EXTRA_PERCENTAGE, batteryPercentage.toString())
startActivity(intent)

Второе занятие:

val intent = Intent(this, ThirdActivity::class.java)
intent.putExtra(ThirdActivity.EXTRA_ADDRESS, address)
// Get the data you sent to this activity and re-add it to send again
intent.putExtra(ThirdActivity.EXTRA_PERCENTAGE, getIntent().getStringExtra(ThirdActivity.EXTRA_PERCENTAGE)
startActivity(intent)

Третье занятие:

m_address = intent.getStringExtra(EXTRA_ADDRESS)
m_battery = intent.getStringExtra(EXTRA_PERCENTAGE)
...