lundi 7 août 2017

Why does "setText()" depeding on my enum doesn't work?

I'd like that depending on my enum different texts will show with "setText()".
My problem is, that whatever I enter in my EditText (XML) my enum is alwys the same.
Here's my code so far:

@SuppressLint("SetTextI18n")
public void Checking(View X) {
    TextView hKnowledge = (TextView) findViewById(R.id.headerKnowledge);
    TextView tKnowledge = (TextView) findViewById(R.id.textKnowledge);
    TextView eKnowledge = (TextView) findViewById(R.id.enterKnowledge);

    try{
        int inputNumber = Integer.parseInt(eKnowledge.getText().toString());
        _knowledge = KnowledgeLevel.fromUserInput(inputNumber);
    } catch(NumberFormatException e){
            hKnowledge.setText("Error 1");
            hKnowledge.getResources().getColor(android.R.color.holo_red_dark);
            tKnowledge.setText("Error 2");
            tKnowledge.getResources().getColor(android.R.color.holo_red_light);
    }
    Test();
}

public void Test() {
    setContentView(R.layout.test);
    TextView test = (TextView) findViewById(R.id.textView);

    switch(_knowledge) {
        case NONE:
            test.setText("ENUM = NOOB");
        case BEGINNER:
            test.setText("ENUM = BEGINNER");
        case ADVANCED:
            test.setText("ENUM = ADV");
        case PRO:
            test.setText("ENUM = PRO");
        case GRANDMASTER:
            test.setText("ENUM = GM");
    }
}

private enum KnowledgeLevel {
    NONE, BEGINNER, ADVANCED, PRO, GRANDMASTER;

    static KnowledgeLevel fromUserInput(final int input)
    {
        if (input >= 10) {
            return GRANDMASTER;
        }
        else if (input >= 7) {
            return PRO;
        }
        else if (input >= 4) {
            return ADVANCED;
        }
        else if (input >= 0) {
            return BEGINNER;
        }
        return NONE;
    }
}

Aucun commentaire:

Enregistrer un commentaire