在Android studio中我得知intent中mextras[{key=a}]但是我使用fragmentName=intent.getStringExtra("key")却不能把ky的值赋给fragmentname,fragmentname的值为空
时间: 2024-05-13 12:15:43 浏览: 46
在你的代码中,你使用了 `intent.getStringExtra("key")` 来获取传递给 `Intent` 的字符串值,但是通过 `intent.getExtras()` 直接获取 `Bundle` 对象,然后使用 `bundle.getString("key")` 获取字符串值更为稳妥。你可以尝试以下代码:
```java
Bundle bundle = intent.getExtras();
if (bundle != null) {
String fragmentName = bundle.getString("key");
// 在这里使用 fragmentName
}
```
如果你使用 `intent.getExtras()` 获取 `Bundle` 对象并且没有检查 `null` 值,请注意在空 `Bundle` 对象上调用 `getString()` 方法会导致空指针异常。
相关问题
在Android studio中我得知bunlde[{key=a}]但是我使用fragmentName=intent.getStringExtra("key")却不能把ky的值赋给fragmentname,fragmentname的值为空
可能是因为你使用的是`getStringExtra()`方法,而你传递的是一个Bundle对象。可以尝试使用`getBundleExtra()`方法来获取Bundle对象,然后从中获取key对应的值。
例如,你可以在启动Activity时这样传递参数:
```java
Bundle bundle = new Bundle();
bundle.putString("key", "a");
Fragment fragment = new MyFragment();
fragment.setArguments(bundle);
```
在Fragment中获取参数:
```java
String key = getArguments().getString("key");
```
这样就能够成功获取到传递的参数了。
在android studio 中如何使用Intent在两个Activity之间传递数据
1. 首先在发送数据的Activity中创建Intent对象,同时将需要传递的数据添加到Intent中。
例如,在Activity A中发送一个字符串数据到Activity B:
```
String data = "Hello, Activity B";
Intent intent = new Intent(A.this, B.class);
intent.putExtra("key", data);
startActivity(intent);
```
2. 在接收数据的Activity中创建一个Intent对象,然后通过getXXXExtra()方法获取Intent中的数据。
例如,在Activity B中获取从Activity A传递过来的字符串数据:
```
Intent intent = getIntent();
String data = intent.getStringExtra("key");
```
其中,getStringExtra()方法的参数是在发送数据时使用的key。
3. 最后,在接收数据的Activity中使用获取到的数据进行相应的操作。
例如,在Activity B中将接收到的字符串数据显示在TextView中:
```
TextView textView = findViewById(R.id.text_view);
textView.setText(data);
```