簡體   English   中英

通過 Intent 將數據傳遞給另一個 Activity 時獲取 Null 值

[英]Getting a Null value while passing data through intent to another activity

當我進行調試時,我可以看到第一個活動發送了正確的數字,但第二個活動總是得到一個空值。 感謝您的幫助。

第一個活動:

 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

[編輯] 實際上打開第二個活動的活動代碼(與第一個不同):

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

如果您對此結果意圖不做任何事情,它將不會做任何事情:

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)

那么您的接收活動將獲得這兩項額外費用。 :-)


如果您有三個活動並且想要從第一個到第三個獲取數據,您可以這樣做:

第一個活動:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM