使用put extra传递字符串时,第二次在病房返回值null
。
例如:
1.用户选择案例0,它按预期工作。
2.然后当用户选择案例1时,它返回null
。
现在,如果我再次尝试并从1开始。然后它可以工作,但接下来的情况将返回null
。所以我理解的是,只有在第一种情况下它才有效,无论你选择什么情况。从第二个病房来看它失败了。
以下开关案例用于我所拥有的菜单中的选项。在下一个活动中,数据将根据传递的ID加载。
Intent intent;
switch (position) {
case 0:
intent = new Intent(ChannelActivity.this, ShowsActivity.class);
intent.putExtra("channel_id", "3");
startActivity(intent);
break;
case 1:
intent = new Intent(ChannelActivity.this, ShowsActivity.class);
intent.putExtra("channel_id", "4");
startActivity(intent);
break;
case 2:
intent = new Intent(ChannelActivity.this, ShowsActivity.class);
intent.putExtra("channel_id", "5");
startActivity(intent);
break;
case 3:
startActivity(new Intent(ChannelActivity.this, ScheduleActivity.class));
break;
}
在下一个活动类中,我在onCreate中有以下代码,它在此活动中变为null:
String channel_id = getIntent().getStringExtra("channel_id");
当数据从不同的函数单独传递时,这个问题不存在
答案 0 :(得分:0)
我尝试了相同类型的代码,它对我来说很好用:
尝试以下事项:
1.在开关盒中使用位置而不是使用菜单项的id。
2.在swich语句下面放置startActivity(intent)并将其从所有情况中删除,同样将你的行“intent = new Intent(...)”移到switch语句之上。
如果这两件事不起作用,那么你的代码的其他部分就有问题没有粘贴。