我正在向Intent添加4个Extras,由于某种原因,Intent Map 中的1个插槽每次都会被覆盖 . 它总是相同的插槽,除非我更改我的Extras添加的顺序,然后被覆盖的插槽发生变化 . 这是照片:Okay so far...
我检查了我的变量,并且所有数据都在mTeamMemberFrag中正确存在 . 使用断点,我可以看到第一个和第二个额外添加没有问题,然后第三个覆盖第一个,然后第四个添加没有问题 . 我可以看到我没有将它们映射到同一个键 . 我搜索了Stack Overflow并阅读了Android文档中的Intents和Intent Filters . 我已经尝试更改添加到硬编码值的值,我已经尝试更改添加Extras的顺序,并且我仔细检查了MainActivity中的静态最终变量 .
好吧,在我写这篇文章的同时仔细检查Main中的变量时,我发现了导致我错误的原因:在MainActivity中为USERNAMEKEY和USERPOSITIONKEY分配了“com.zin.username”,因此根据我首先添加到Intent中的那个一个人覆盖了另一个人 .
我很想知道为什么会这样 . 谢谢你的时间!
这是我加载Intent的代码:
public void onBackPressed() {
mTeamMemberFrag.updateUserID();
Intent resultIntent = new Intent(this, MainActivity.class);
resultIntent.putExtra(MainActivity.USERNAMEKEY, mTeamMemberFrag.getUserName());
resultIntent.putExtra(MainActivity.USERIDKEY, mTeamMemberFrag.getUserID());
resultIntent.putExtra(MainActivity.USERROLEKEY, mTeamMemberFrag.getSpinner().getSelectedItem().toString());
resultIntent.putExtra(MainActivity.USERPOSITIONKEY, mMemberPosition);
setResult(Activity.RESULT_OK, resultIntent);
finish();
Toast.makeText(this, "Team updated", Toast.LENGTH_SHORT).show();
super.onBackPressed();
}
在主要问题实际上是:
public class MainActivity extends AppCompatActivity {
public static final String USERIDKEY = "com.zin.userid";
public static final String USERPOSITIONKEY = "com.zin.userposition";
public static final String USERNAMEKEY = "com.zin.username";
public static final String USERROLEKEY = "com.zin.userrole";