在switch语句中使用时,Intent.putExtra返回null

时间:2015-10-31 16:44:40

标签: java android android-intent null switch-statement

使用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");

当数据从不同的函数单独传递时,这个问题不存在

1 个答案:

答案 0 :(得分:0)

我尝试了相同类型的代码,它对我来说很好用:

尝试以下事项:

1.在开关盒中使用位置而不是使用菜单项的id。

2.在swich语句下面放置startActivity(intent)并将其从所有情况中删除,同样将你的行“intent = new Intent(...)”移到switch语句之上。

如果这两件事不起作用,那么你的代码的其他部分就有问题没有粘贴。