我该如何解决if语句重复的问题

时间:2020-07-23 07:03:35

标签: java android function if-statement switch-statement

我希望有人帮助我创建一个包含所有if语句的函数,我尝试使用switch,但是它仍然太长了。 感谢您的帮助,我的代码如下 我阅读了Nfc标签,然后处理内容。 代码运行良好,但是很难更改,因为它太长了,我想尽可能地简化它。 我的Java水平还没有很高,这就是为什么我不能凭自己做到这一点,如果有人有能力我会很感激

private void readFromIntent(Intent intent) {
        String action = intent.getAction();
        if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)
                || NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)
                || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) {
            Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
            NdefMessage[] msgs = null;
            if (rawMsgs != null) {
                msgs = new NdefMessage[rawMsgs.length];
                for (int i = 0; i < rawMsgs.length; i++) {
                    msgs[i] = (NdefMessage) rawMsgs[i];
                }
            }
            buildTagViews(msgs);
        }
    }
    private void buildTagViews(NdefMessage[] msgs) {
        if (msgs == null || msgs.length == 0) return;

        String text = "";
//        String tagId = new String(msgs[0].getRecords()[0].getType());
        byte[] payload = msgs[0].getRecords()[0].getPayload();
        String textEncoding = ((payload[0] & 128) == 0) ? "UTF-8" : "UTF-16"; // Get the Text Encoding
        int languageCodeLength = payload[0] & 0063; // Get the Language Code, e.g. "en"
        // String languageCode = new String(payload, 1, languageCodeLength, "US-ASCII");

        try {
            // Get the Text

            text = new String(payload, languageCodeLength + 1, payload.length - languageCodeLength - 1, textEncoding);
        } catch (UnsupportedEncodingException e) {
            Log.e("UnsupportedEncoding", e.toString());
        }


        tvNFCContent.setText(text+"(( taille de la trame: " + text.length () +"))");
        //lenght.setText(text.length ());
        //tramemail.setText(text+"(( taille de la trame: " + text.length () +"))" + Version);


        Nbre_defauts1.setText("Le Nombre de défauts enregistrés sur le détecteur 1 est de "+ text.charAt(39)+ text.charAt(40));
        Nbre_defauts2.setText("Le Nombre de défauts enregistrés sur le détecteur 2 est de "+ text.charAt(41)+ text.charAt(42));
        Nbre_defauts3.setText("Le Nombre de défauts enregistrés sur le détecteur 3 est de "+ text.charAt(43)+ text.charAt(44));
        Nbre_defauts4.setText("Le Nombre de défauts enregistrés sur le détecteur 4 est de "+ text.charAt(45)+ text.charAt(46));
        Nbre_defauts_pion.setText("Le Nombre de défauts enregistrés sur l'autoprotection est de "+ text.charAt(57)+ text.charAt(58));
        Nbre_defauts_capot.setText("Le Nombre de défauts enregistrés sur le capot est de "+ text.charAt(55)+ text.charAt(56));
        Telecommande_trame.setText("La Télécommande actuelle a comme numéro "+ text.charAt(63)+ text.charAt(64)+ text.charAt(65)+ text.charAt(66) );


       if (text.charAt(6) == 'O')
        {
            Etat_centrale_texte.setText( "Centrale en Parfait état");
            Etat_centrale_couleur.setBackgroundResource(R.color.vert);
        } else if (text.charAt(6) == 'A')
       {
           Etat_centrale_texte.setText( "  Centrale en Alarme");
           Etat_centrale_couleur.setBackgroundResource(R.color.rouge);
       }
       else
       {
           Etat_centrale_texte.setText( "Centrale à revoir");
           Etat_centrale_couleur.setBackgroundResource(R.color.orange);
       }



        if (text.charAt(7) == 'A') {
            D1.setBackgroundResource(R.drawable.ic_warning_red);
        } else if (text.charAt(7) == 'O') {
            D1.setBackgroundResource(R.drawable.ic_ok);
        } else if (text.charAt(7) == 'W') {
            D1.setBackgroundResource(R.drawable.ic__warning_orange);
        } else {
            D1.setBackgroundResource(R.drawable.ic_baseline_block_24);
        }
        if (text.charAt(8) == 'A') {
            D2.setBackgroundResource(R.drawable.ic_warning_red);
        } else if (text.charAt(8) == 'O') {
            D2.setBackgroundResource(R.drawable.ic_ok);
        } else if (text.charAt(8) == 'W') {
            D2.setBackgroundResource(R.drawable.ic__warning_orange);
        } else {
            D2.setBackgroundResource(R.drawable.ic_baseline_block_24);
        }

        if (text.charAt(9) == 'A') {
            D3.setBackgroundResource(R.drawable.ic_warning_red);
        } else if (text.charAt(9) == 'O') {
            D3.setBackgroundResource(R.drawable.ic_ok);
        } else if (text.charAt(9) == 'W') {
            D3.setBackgroundResource(R.drawable.ic__warning_orange);
        } else {
            D3.setBackgroundResource(R.drawable.ic_baseline_block_24);
        }

        if (text.charAt(10) == 'A') {
            D4.setBackgroundResource(R.drawable.ic_warning_red);
        } else if (text.charAt(10) == 'O') {
            D4.setBackgroundResource(R.drawable.ic_ok);
        } else if (text.charAt(10) == 'W') {
            D4.setBackgroundResource(R.drawable.ic__warning_orange);
        } else {
           D4.setBackgroundResource(R.drawable.ic_baseline_block_24);
        }


        if (text.charAt(59) == 'A') {
            Capot.setBackgroundResource(R.drawable.capot_rouge);
        Capot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getApplicationContext(), "Le capot est en alarme", Toast.LENGTH_SHORT).show();
            }
        });}
        else if (text.charAt(59)== 'O'){
            Capot.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getApplicationContext(), "Le capot est en Bon état", Toast.LENGTH_SHORT).show();
                }
            });
            Capot.setBackgroundResource(R.drawable.capot_vert);
        }

        else {
            Capot.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getApplicationContext(), "Attention au capot!", Toast.LENGTH_SHORT).show();
                }
            });
            Capot.setBackgroundResource(R.drawable.capot_orange);
        }

        if (text.charAt(60) == 'A') {
            Autoprotection.setBackgroundResource(R.drawable.tamper_rouge);}
        else if (text.charAt(60)== 'O'){
            Autoprotection.setBackgroundResource(R.drawable.pion_vert);
        }

        else {
            Autoprotection.setBackgroundResource(R.drawable.tamper_rouge);
        }


        if (text.charAt(61) == 'P') {
            Mode_alimentation.setText("L'Alimentation est en mode Secteur");
            Alimentation.setBackgroundResource(R.drawable.ic_baseline_power_vert);

        }
        else if (text.charAt(61)== 'B') {
            Mode_alimentation.setText("L'Alimentation est en mode Boost");
            Alimentation.setBackgroundResource(R.drawable.ic_baseline_power_bleu);
        }
        else {
            Mode_alimentation.setText("L'Alimentation est absente");
            Alimentation.setBackgroundResource(R.drawable.ic_baseline_power_rouge);

        }
        if (text.charAt(62) == 'H') {
            Batterie.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getApplicationContext(), "Batterie pleine", Toast.LENGTH_SHORT).show();
                }
            });
            Batterie.setBackgroundResource(R.drawable.ic_baseline_battery_full_24); }
        else if (text.charAt(62)== 'M'){
            Batterie.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getApplicationContext(), "Batterie à moitié chargée", Toast.LENGTH_SHORT).show();
                }
            });
            Batterie.setBackgroundResource(R.drawable.ic_baseline_battery_alert_24);
        }
        else if (text.charAt(62)== 'L'){
            Batterie.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getApplicationContext(), "Batterie faible", Toast.LENGTH_SHORT).show();
                }
            });
            Batterie.setBackgroundResource(R.drawable.ic_baseline_battery_alert_rouge);
        }
        else {
            Batterie.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getApplicationContext(), "Batterie absente", Toast.LENGTH_SHORT).show();
                }
            });
           Batterie.setBackgroundResource(R.drawable.batt_absente);
        }


        //int version = (int)text.charAt(4);
        if (text.charAt(67)=='R') {
            Telecommande_centrale.setText("La Télécommande arret centrale est Rouge "+ text.charAt(68)+ text.charAt(69)+ text.charAt(70)+ text.charAt(71));
        }

        else if(text.charAt(67)=='B') {
            Telecommande_centrale.setText("La Télécommande arret centrale est Bleu "+ text.charAt(68)+ text.charAt(69)+ text.charAt(70)+ text.charAt(71));
        }
        else{
            Telecommande_centrale.setText("La Télécommande arret centrale est Inconnue "+ text.charAt(68)+ text.charAt(69)+ text.charAt(70)+ text.charAt(71));
        }


        if (text.charAt(72)=='R') {
            Telecommande_arret.setText("La Télécommande arret alarme est Rouge "+ text.charAt(73)+ text.charAt(74)+ text.charAt(75)+ text.charAt(76));
        }

        else if(text.charAt(72)=='B') {
            Telecommande_arret.setText("La Télécommande arret alarme est Bleu "+ text.charAt(73) + text.charAt(74) + text.charAt(75) + text.charAt(76));
        }
        else{
            Telecommande_arret.setText("La Télécommande arret alarme est Inconnue "+ text.charAt(73) + text.charAt(74) + text.charAt(75) + text.charAt(76));
        }
    }

0 个答案:

没有答案