我有一个问题,改变背景颜色随机:
首先,我尝试在着色类中使用parseColor:
public class Colors {
public String[] colors = {
"#39add1", // light blue
"#3079ab", // dark blue
"#c25975" // mauve
};
public int getcolor() {
Random randomGenerator = new Random();
String color = "";
int randomNumber = randomGenerator.nextInt(3);
color = colors[randomNumber];
int colorAsInt = Color.parseColor(color);
return colorAsInt;
}
} 在活动课上:
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
int color = mColors.getcolor();
relativeLayout.setBackgroundColor(color);
}
};它工作得很完美:
但是,当我试图在活动类中使用String来返回getcolor类型和使用parse时,当我运行该应用程序时,它会给我一个错误:不幸的是,app已经停止了。
颜色类:
public String getcolor() {
Random randomGenerator = new Random();
String color = "";
int randomNumber = randomGenerator.nextInt(3);
color = colors[randomNumber];
return color;
}而活动课:
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
String color = mColors.getcolor();
relativeLayout.setBackgroundColor(Integer.parseInt(color));
}
};为什么会出现这样的问题?
发布于 2014-08-31 08:46:35
Integer.parseInt(color)不能解析字符串,因为它不是整数字符串"#39add1"。
您必须像使用第一个函数一样使用Color.parseColor(color)。
relativeLayout.setBackgroundColor(Color.parseColor(color));发布于 2014-08-31 08:47:03
将颜色定义更改为
public int[] colors = {
0x39add1, // light blue
0x3079ab, // dark blue
0xc25975 // mauve
};并使用
setBackgroundColor(colors[0]);https://stackoverflow.com/questions/25590295
复制相似问题