我对Android开发人员来说非常新,但我真的很喜欢它:)我想为我玩的游戏制作一个计算器应用程序来计算它从水平上升多久所需的时间a到使用各种方法的b级。到目前为止,我做得还不错,但是现在遇到了这个错误,这真的让我烦恼。
我想将文本颜色变为红色,如果他们输入的数字低于使用游戏的所需经验。例如,桃花心木日志需要400000xp才能使用,因此如果输入<400000,我希望带有桃花心木日志的TextView变为红色。希望我有意义哈哈:)目前,当我输入任何数字时,他们都只是改变红色,不要随用户输入改变:(任何帮助将不胜感激!:)这是应用程序界面的屏幕截图,所以你可以看到我的意思{ {3}}
numspace1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
Double numb1 = Double.parseDouble(numspace1.getText().toString());
if (numb1 >= 6517253 && numb1 <= 10692628) {
p15.setTextColor(Color.RED);
} else if (numb1 >= 5346332 && numb1 <= 6517252) {
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 3972294 && numb1 <= 5346331) {
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 3258594 && numb1 <= 3972293) {
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 2421087 && numb1 <= 3258593) {
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 1475581 && numb1 <= 2421086) {
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 273742 && numb1 <= 1475580) {
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 123660 && numb1 <= 273741) {
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 83014 && numb1 <= 123659) {
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 22406 && numb1 <= 83013) {
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 13363 && numb1 <= 22405) {
p4.setTextColor(Color.RED);
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 0 && numb1 <= 13362) {
p2.setTextColor(Color.RED);
p3.setTextColor(Color.RED);
p4.setTextColor(Color.RED);
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
}
}
答案 0 :(得分:0)
试试这个:
numspace1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(!s.toString().equals("")) {
checkValue(s.toString());
}
}
});
}
private void checkValue(String s) {
Double numb1 = Double.parseDouble(s);
if (numb1 >= 6517253 && numb1 <= 10692628) {
p15.setTextColor(Color.RED);
} else if (numb1 >= 5346332 && numb1 <= 6517252) {
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 3972294 && numb1 <= 5346331) {
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 3258594 && numb1 <= 3972293) {
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 2421087 && numb1 <= 3258593) {
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 1475581 && numb1 <= 2421086) {
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 273742 && numb1 <= 1475580) {
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 123660 && numb1 <= 273741) {
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 83014 && numb1 <= 123659) {
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 22406 && numb1 <= 83013) {
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 13363 && numb1 <= 22405) {
p4.setTextColor(Color.RED);
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 0 && numb1 <= 13362) {
p2.setTextColor(Color.RED);
p3.setTextColor(Color.RED);
p4.setTextColor(Color.RED);
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
}
}
答案 1 :(得分:0)
新答案: 嗯..在你输入的每个角色中触发afterTextChanged ...如果你把1000 - &gt;它将调用4次.. 1 10 100 1000
我的建议是: 选项1:在afterTextChanged
的开头设置默认颜色选项2:当用户完成输入时触发颜色设置(保留编辑文本或在键盘上按完)...查看此链接了解详细信息:android EditText - finished typing event
旧答案: 可编辑正在实现CharSequence,这意味着您可以使用char序列中的toString方法:
“返回包含此序列中字符的字符串 与此序列相同的顺序。“
试试这个:
numspace1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
Double numb1 = Double.parseDouble(s.toString());
if (numb1 >= 6517253 && numb1 <= 10692628) {
p15.setTextColor(Color.RED);
} else if (numb1 >= 5346332 && numb1 <= 6517252) {
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 3972294 && numb1 <= 5346331) {
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 3258594 && numb1 <= 3972293) {
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 2421087 && numb1 <= 3258593) {
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 1475581 && numb1 <= 2421086) {
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 273742 && numb1 <= 1475580) {
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 123660 && numb1 <= 273741) {
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 83014 && numb1 <= 123659) {
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 22406 && numb1 <= 83013) {
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 13363 && numb1 <= 22405) {
p4.setTextColor(Color.RED);
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 0 && numb1 <= 13362) {
p2.setTextColor(Color.RED);
p3.setTextColor(Color.RED);
p4.setTextColor(Color.RED);
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
}
}
答案 2 :(得分:0)
You can try the following :
private void checkValue(String s) {
Double numb1 = Double.parseDouble(s);
if (numb1 >= 6517253 && numb1 <= 10692628) {
p15.setTextColor(Color.RED);
// set other text color black (apply it for all other textviews .)
p2.setTextColor(Color.RED);
p3.setTextColor(Color.BLACK);
p4.setTextColor(Color.BLACK);
p5.setTextColor(Color.BLACK);
p6.setTextColor(Color.BLACK);
p7.setTextColor(Color.BLACK);
p9.setTextColor(Color.BLACK);
p10.setTextColor(Color.BLACK);
p11.setTextColor(Color.BLACK);
p12.setTextColor(Color.BLACK);
p13.setTextColor(Color.BLACK);
p14.setTextColor(Color.BLACK);
} else if (numb1 >= 5346332 && numb1 <= 6517252) {
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 3972294 && numb1 <= 5346331) {
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 3258594 && numb1 <= 3972293) {
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 2421087 && numb1 <= 3258593) {
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 1475581 && numb1 <= 2421086) {
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 273742 && numb1 <= 1475580) {
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 123660 && numb1 <= 273741) {
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 83014 && numb1 <= 123659) {
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 22406 && numb1 <= 83013) {
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 13363 && numb1 <= 22405) {
p4.setTextColor(Color.RED);
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
} else if (numb1 >= 0 && numb1 <= 13362) {
p2.setTextColor(Color.RED);
p3.setTextColor(Color.RED);
p4.setTextColor(Color.RED);
p5.setTextColor(Color.RED);
p6.setTextColor(Color.RED);
p7.setTextColor(Color.RED);
p8.setTextColor(Color.RED);
p9.setTextColor(Color.RED);
p10.setTextColor(Color.RED);
p11.setTextColor(Color.RED);
p12.setTextColor(Color.RED);
p13.setTextColor(Color.RED);
p14.setTextColor(Color.RED);
p15.setTextColor(Color.RED);
}
}
由于您不熟悉Android,我建议您为此学习ListView。