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