簡體   English   中英

Null 使用 putExtra 和 getExtras 時出現指針異常

[英]Null Pointer Exception while using putExtra and getExtras

我正在嘗試使用 putExtra 和 getExtras 在我正在編寫的 android 游戲中傳遞一些信息(這是一個分數)。 當我傳遞它時,我在一個 class 中使用此代碼來輸入信息:

Intent winScreen = new Intent(context, WinScreen.class);
winScreen.putExtra("score", "123");

當我得到它時,我正在使用:

Intent x=new Intent(this, GameCall.class);
Bundle ebundle = x.getExtras();
String score = (String) x.getExtras().getSerializable("score");

我現在只是想用一個樣本分數進行測試,所以我認為正確設置值不是問題所在。 這就是我在其他地方看到的關於為什么會出現這樣的 null 指針的建議。 我知道它將“分數”理解為額外的。 所以我對信息丟失的地方感到困惑!

當您使用Intent啟動一個新的 Activity 時,您必須使用getIntent()來獲取該 Intent 的特定實例。 使用Intent x=new Intent(this, GameCall.class); 不會工作。 試試下面的代碼:

Intent x= this.getIntent(); //in the WinScreen activity
String score = (String) x.getStringExtra("score");

使用Intent.getExtras()返回一個Bundle ,它是您之前使用 Intent 添加到 Intent 中的Intent. putExtras() Intent. putExtras()方法。 要簡單地將字符串添加到 Intent,請使用Intent.putExtra(String tag, String value)並使用Intent.getStringExtra(String tag)獲取它。 我自己多次犯過這個錯誤; 這不是很人性化xD

暫無
暫無

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

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