Intent intent = new Intent(mcontext,fruitActivity2.class); intent.putExtra(FRUIT_NAME,fruit.getName()); intent.putExtra(FRUIT_IMAGE_ID,fruit.getImageId()); String fruitName = intent.getStringExtra(FRUIT_NAME); int fruitImgeid=intent.getIntExtra(FRUIT_IMAGE_ID,0); fruitName 和 fruitImgeid 没有值
时间: 2023-05-30 14:05:58 浏览: 52
在这段代码中,fruitName 和 fruitImgeid 没有值是因为它们是通过 Intent 的 putExtra() 方法传递到 fruitActivity2 的,而在当前的代码中并没有接收这些值的代码。要接收这些值,需要在 fruitActivity2 中使用 getIntent() 方法获取 Intent 对象,然后使用 getStringExtra() 和 getIntExtra() 方法获取传递过来的值。例如:
```
Intent intent = getIntent();
String fruitName = intent.getStringExtra(FRUIT_NAME);
int fruitImageId = intent.getIntExtra(FRUIT_IMAGE_ID, 0);
```
注意,在 getIntExtra() 方法中第二个参数是一个默认值,如果 Intent 中没有传递对应的值,则会使用这个默认值。
相关问题
Intent intent = new Intent(mContext, DetailActivity.class)中的 DetailActivity标红
`DetailActivity` 标红是因为它可能没有被正确导入或声明。请确保您的项目中已经声明了 `DetailActivity` 并且它在正确的包中。如果您使用的是 Android Studio,可以尝试按下 `Alt + Enter` 快捷键,然后选择 `Import Class` 选项来导入缺少的类。如果问题仍然存在,请检查您的导入语句和包名是否正确。
Intent intent = new Intent(this, ContactActivity.class);报错
如果在 Android Studio 中使用 `Intent` 启动另一个 Activity 时,出现 `Cannot resolve constructor 'Intent(<anonymous android.content.Context>, java.lang.Class<ContactActivity>>)'` 或类似错误,可能是因为 `this` 没有指向正确的上下文。
在这种情况下,您可以尝试使用以下方法之一来解决问题:
1. 使用 `getApplicationContext()` 方法获取应用程序的上下文,例如:
```java
Intent intent = new Intent(getApplicationContext(), ContactActivity.class);
startActivity(intent);
```
2. 使用 `ActivityName.this` 来获取当前 Activity 的上下文,例如:
```java
Intent intent = new Intent(MainActivity.this, ContactActivity.class);
startActivity(intent);
```
在这里,`MainActivity` 是当前 Activity 的类名。
3. 如果您正在使用 Fragment 中的 `Intent`,则可以使用 `getActivity()` 方法获取 Fragment 所依附的 Activity 的上下文,例如:
```java
Intent intent = new Intent(getActivity(), ContactActivity.class);
startActivity(intent);
```
希望这些方法能够帮助您解决问题。