Intent intent=this.getIntent(); bookId=intent.getStringExtra("bookId"); sendID=intent.getStringExtra("id");bookId为空
时间: 2024-05-04 07:20:04 浏览: 15
这段代码中,bookId为空的原因可能是intent对象中不存在名为"bookId"的字符串Extra,或者该Extra的值为null。建议在调用getStringExtra()方法前先检查intent对象中是否包含该Extra,或者给bookId变量赋一个默认值,以免出现空指针异常。例如可以这样修改代码:
```
Intent intent = this.getIntent();
if(intent.hasExtra("bookId")) {
bookId = intent.getStringExtra("bookId");
} else {
bookId = "default_book_id";
}
sendID = intent.getStringExtra("id");
```
相关问题
Intent intent=this.getIntent();
这段代码是在 Android 开发中获取启动当前 Activity 的 Intent 对象。
可以通过该 Intent 对象获取传递给当前 Activity 的额外数据,例如:
```
String extraData = intent.getStringExtra("key");
```
其中 "key" 是数据的键,可以根据你传递数据的方式而定。如果是使用 putExtra() 方法传递的数据,那么就是 putExtra("key", value) 中的 "key"。
bundle = this.getIntent().getExtras();中的bundle为null
这种情况可能是因为Intent没有设置Extras导致的,或者是在调用getIntent().getExtras()方法时,Intent对象还没有被完全初始化。你可以先通过Log等方式打印出Intent对象,确认是否设置了Extras。如果Intent对象中没有设置Extras,可以通过以下方式设置:
```java
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("key", "value");
intent.putExtras(bundle);
```
如果Intent对象中已经设置了Extras,那么可以尝试在调用getIntent().getExtras()之前先调用一次getIntent()方法,以确保Intent对象已经被完全初始化:
```java
Intent intent = getIntent();
if(intent != null && intent.getExtras() != null) {
Bundle bundle = intent.getExtras();
// do something with bundle
} else {
// handle null case
}
```