jeudi 3 août 2017

How can I set an enum with an if-statement or a for-loop?

I want that people can assess themselves. For that they need to enter a number between 0 and 10 (0,1,2,3,4,5,6,7,8,9,10). Depending on their number my enum should switch.

My enum is called "knowlede" and I got four different steps of "knowledge".
0-3 = Beginner // 4-6 = Advanced // 7-9 = Professional // 10 = Master

My idea was to set the users enum level with an if statement and/or a for loop.
This is my code so far, but as you can see I could shorten this code but I don't know how; I read some other threads but for some reason they didn't work or I didnt't get them.

@SuppressLint("SetTextI18n")
public Wissenstand Bestätigung(View v) {
    TextView uWissen = (TextView) findViewById(R.id.textView_Wissen_Titel);
    TextView pWarung = (TextView) findViewById(R.id.textView_Wissen);
    TextView eWissen = (TextView) findViewById(R.id.editText_eingabeWissentsstand);
            if ("0".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Beginner;
            } else if ("1".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Beginner;
            } else if ("2".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Beginner;
            } else if ("3".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Beginner;
            } else if ("4".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Fortgeschrittener;
            } else if ("5".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Fortgeschrittener;
            } else if ("6".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Fortgeschrittener;
            } else if ("7".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Pro;
            } else if ("8".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Pro;
            } else if ("9".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.Pro;
            } else if ("10".equals(eWissen.getText().toString())) {
                knowledge = Wissenstand.GrandMaster;
            } else {
                uWissen.setText("Fehler gefunden!");
                uWissen.getResources().getColor(android.R.color.holo_red_dark);
                pWarung.setText("Gib eine Zahl von 0 bis 10 ein!\n0,5-er Schritte sind nicht erlaubt!\nWeitere Informationen kannst du der Legende entnehmen!");
                pWarung.getResources().getColor(android.R.color.holo_red_light);
            }
    return null;
}

If you need some help because u don't understand some words, text me, I'll answer as fast as I can.
The language is "german".

Aucun commentaire:

Enregistrer un commentaire