jal*_*039 60 android bundle android-intent android-activity
有没有办法检查在启动活动时是否已经通过了额外的活动?
我想做一些像(在onCreate()活动中):
Bundle extras = getIntent().getExtras();
String extraStr = extras.getString("extra");
if (extraStr == null) {
extraStr = "extra not set";
}
Run Code Online (Sandbox Code Playgroud)
但这是扔了一个java.lang.NullPointerException.
谢谢.
Mic*_*man 184
使用Intent.hasExtra(String name)来检查nameintent中是否传递了额外的with .
例:
Intent intent = getIntent();
if (intent.hasExtra("bookUrl")) {
bookUrl = b.getString("bookUrl");
} else {
// Do something else
}
Run Code Online (Sandbox Code Playgroud)
此外,Intent.getStringExtra(String name)直接使用意图处理NullPointerException如果没有额外的传递.
Júl*_*zar 13
好吧,我有类似的问题.在我的情况下,当我检查我的bundle.getString()是否等于 null时,发生了零点异常.
这是我的情况如何解决它:
Intent intent = getIntent();
if(intent.hasExtra("nomeUsuario")){
bd = getIntent().getExtras();
if(!bd.getString("nomeUsuario").equals(null)){
nomeUsuario = bd.getString("nomeUsuario");
}
}
Run Code Online (Sandbox Code Playgroud)
if (this.getIntent().getExtras() != null && this.getIntent().getExtras().containsKey("yourKey")) {
// intent is not null and your key is not null
}
Run Code Online (Sandbox Code Playgroud)
小智 6
我认为你需要检查 extras != null
Bundle extras = getIntent().getExtras();
if (extras != null) {
String extraStr = extras.getString("extra");
}else {
extraStr = "extra not set";
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我会在你的情况下使用这个解决方案。
String extraStr;
try {
extraStr = getIntent().getExtras().getString("extra");
} catch (NullPointerException e ) {
extraStr = "something_else";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77655 次 |
| 最近记录: |