android中switch语句第一次不能执行第一个 case,只能执行别的 case后第一个 case才能正常

写了一个查看全部订单的功能,点击查看全部订单之后进去订单页面默认显示已完成页面,然后我点击全部订单没有反应,只能点击其他选型后在点击全部订单才恢复正常显示全订单页面

img

debug看下是没执行这里的逻辑还是执行了,界面没生效

有默认选中没,是不是已经默认选中第一个,再次点击没触发啊。断点跟踪下,不难定位问题

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7552518
  • 除此之外, 这篇博客: Android的java基本知识总结【入门篇】中的 switch case 语句 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

    语法

    switch case 语句语法格式如下:

    switch(expression){
        case value :
           //语句
           break; //可选
        case value :
           //语句
           break; //可选
        //你可以有任意数量的case语句
        default : //可选
           //语句
    }
    
    //eg:
    int i = new Random().nextInt(4);
    String result ;
    switch (i){
        case 0 :
            result = "这是个0";
            break;
        case 1 :
            result = "这是个1";
            break;
        case 2 :
            result = "这是个2";
            break;
        default :
            result = "这是个default";
            break;
    }
    System.out.println(result);
    
    //jdk 17 
    var i = new Random().nextInt(4);
    var result = switch (i){
        case 0 -> "0";
        case 1 -> "1";
        case 2 -> "2";
        default -> "default";
    };
    System.out.println(result);
    

    switch case 语句有如下规则:

    • switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
    • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
    • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
    • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
    • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
    • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

    java基本的概念和语句到这里结束,下一篇主要讲方法,类,接口

    Android的java基本知识总结【提升篇】

    评论回复不及时,有问题的小伙伴可以进Q群:682963103 提问


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^