我的应用程序将字符打印到自定义视图,我可以使用以下内容设置打印字符的颜色:
public void setColor(){
curColor++;
int NUMBEROFCOLORS = 5;
curColor = curColor % (NUMBEROFCOLORS -1);
switch(curColor){
case 0:
paintTxt.setColor(Color.GREEN);
break;
case 1:
paintTxt.setColor(Color.BLUE);
break;
case 2:
paintTxt.setColor(Color.RED);
break;
case 3:
paintTxt.setColor(Color.YELLOW);
break;
case 4:
paintTxt.setColor(Color.MAGENTA);
break;
case 5:
paintTxt.setColor(Color.WHITE);
break;
}
}
然后在按钮的onClick方法上使用它:
colorChanger.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
myCustomView.setColor(); //this changes the color of chars that are being printed to the custom view
// myEditText.setText(myCustomView.getColor()); // This doesnt do anything
}
}
);
}
波纹管工作正常,但我也会在EditText中打印当前颜色。说白色设置时,打印类似"当前颜色:白色"等等。 我可以使用类似的东西:
myEditText.setText(myCustomView.getColor());
它不起作用。我知道我没有做他们应该做的事情,仍然是初学者。
创建一个调用上面代码的getter,崩溃app:
public int getColor() {
return curColor;
}
日志:
E / AndroidRuntime:致命异常:主要 过程:com.esqmo.apps.digitalraineffects,PID:11373 android.content.res.Resources $ NotFoundException:字符串资源ID#0x1
请建议我了解如何实现这一目标。
答案 0 :(得分:0)
从错误中看,setText
似乎是String
,但getColor
返回int
。
因此您必须将代码更改为
myEditText.setText(myCustomView.getColor()+"");
或者
myEditText.setText(Integer.toString(myCustomView.getColor()));
在int
editText
String colorName = color(myCustomView.getColor());
myEditText.setText(colorName);
public String color(int colorNum)
{
String color;
switch(colorNum) {
case 0:
color = Color.GREEN;
......
break;
case 1:
.....
break;
}
return color;
}