Java 如何将数组的值传递给另一个类?
我试图将另一个类中的颜色数组值传递给Android Studio中的FunFactsActivity。现在,我得到一个错误,视图中的setBackgroundColor(int)无法应用于(java.lang.String)。Java 如何将数组的值传递给另一个类?,java,android,arrays,android-studio,Java,Android,Arrays,Android Studio,我试图将另一个类中的颜色数组值传递给Android Studio中的FunFactsActivity。现在,我得到一个错误,视图中的setBackgroundColor(int)无法应用于(java.lang.String)。 relativeLayout.setBackgroundColor(mColorWheel.mColors[currentColor]) 据我所知,我无法将int传递给它,因为它是一个字符串,但我只是试图使数组中已经存在的颜色每隔几秒/间隔淡出到线程中的relativeL
relativeLayout.setBackgroundColor(mColorWheel.mColors[currentColor])代码>
据我所知,我无法将int传递给它,因为它是一个字符串,但我只是试图使数组中已经存在的颜色每隔几秒/间隔淡出到线程中的relativeLayout背景,并且无法正确获取它。我做错了什么
FunFactsActivity.java
// update background color of relativeLayout every few seconds.
private void updateColor()
{
final RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
int color = mColorWheel.getColor();
runOnUiThread(new Runnable()
{
@Override
public void run()
{
if (currentColor > mColorWheel.mColors.length - 1)
{
currentColor = 0;
}
relativeLayout.setBackgroundColor(mColorWheel.mColors[currentColor]);
currentColor++;
}// end of run
});
}
public class ColorWheel {
// Member variable (properties about the object)
public String[] mColors = {
"#39add1",
"#3079ab",
"#c25975",
"#e15258",
"#f9845b",
"#838cc7",
"#7d669e",
"#53bbb4",
"#e0ab18",
"#637a91",
"#f092b0",
"#b7c0c7",
"#FAEBD7",
"#00FFFF",
"#7FFFD4",
"#0000FF",
"#8A2BE2",
"#A52A2A",
"#DEB887",
"#5F9EA0",
"#7FFF00",
"#D2691E",
"#6495ED",
"#DC143C",
"#B8860B",
"#A9A9A9",
"#006400",
"#FF8C00",
"#8B0000",
"#FFD700",
"#FF69B4",
"#4B0082",
"#F08080",
"#90EE90",
"#87CEFA",
"#FF4500",
"#DA70D6",
"#FA8072",
"#9ACD32",
"#00FF7F",
"#4682B4",
};
// Method (abilities: things the object can do)
public int getColor(){
String color = "";
// Randomly select a fact
Random randomGenerator = new Random(); // Construct a new Random number generator
int randomNumber = randomGenerator.nextInt(mColors.length);
color = mColors[randomNumber];
int colorAsInt = Color.parseColor(color);
return colorAsInt;
}
}
ColorWheel.java
// update background color of relativeLayout every few seconds.
private void updateColor()
{
final RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
int color = mColorWheel.getColor();
runOnUiThread(new Runnable()
{
@Override
public void run()
{
if (currentColor > mColorWheel.mColors.length - 1)
{
currentColor = 0;
}
relativeLayout.setBackgroundColor(mColorWheel.mColors[currentColor]);
currentColor++;
}// end of run
});
}
public class ColorWheel {
// Member variable (properties about the object)
public String[] mColors = {
"#39add1",
"#3079ab",
"#c25975",
"#e15258",
"#f9845b",
"#838cc7",
"#7d669e",
"#53bbb4",
"#e0ab18",
"#637a91",
"#f092b0",
"#b7c0c7",
"#FAEBD7",
"#00FFFF",
"#7FFFD4",
"#0000FF",
"#8A2BE2",
"#A52A2A",
"#DEB887",
"#5F9EA0",
"#7FFF00",
"#D2691E",
"#6495ED",
"#DC143C",
"#B8860B",
"#A9A9A9",
"#006400",
"#FF8C00",
"#8B0000",
"#FFD700",
"#FF69B4",
"#4B0082",
"#F08080",
"#90EE90",
"#87CEFA",
"#FF4500",
"#DA70D6",
"#FA8072",
"#9ACD32",
"#00FF7F",
"#4682B4",
};
// Method (abilities: things the object can do)
public int getColor(){
String color = "";
// Randomly select a fact
Random randomGenerator = new Random(); // Construct a new Random number generator
int randomNumber = randomGenerator.nextInt(mColors.length);
color = mColors[randomNumber];
int colorAsInt = Color.parseColor(color);
return colorAsInt;
}
}
没有通读全部代码,但在Android中设置颜色时,您可以:
- 提供一个
int
作为对颜色id的引用,例如:R.color.my\u red
- 提供一个
颜色
对象。在本例中,如果要将十六进制值转换为Color
,请调用Color.parseColor(“#000000”)
没有完整的代码,但在Android中设置颜色时,您可以:
- 提供一个
int
作为对颜色id的引用,例如:R.color.my\u red
- 提供一个
颜色
对象。在本例中,如果要将十六进制值转换为Color
,请调用Color.parseColor(“#000000”)
没有完整的代码,但在Android中设置颜色时,您可以:
- 提供一个
int
作为对颜色id的引用,例如:R.color.my\u red
- 提供一个
颜色
对象。在本例中,如果要将十六进制值转换为Color
,请调用Color.parseColor(“#000000”)
没有完整的代码,但在Android中设置颜色时,您可以:
- 提供一个
int
作为对颜色id的引用,例如:R.color.my\u red
- 提供一个
颜色
对象。在本例中,如果要将十六进制值转换为Color
,请调用Color.parseColor(“#000000”)
您的
ColorWheel
类已经在getColor
函数中调用Color.parseColor
。
只需使用该函数,因为它已获得随机颜色
relativeLayout.setBackgroundColor(mColorWheel.getColor());
或者,如果要使用mColors阵列:
relativeLayout.setBackgroundColor(Color.parseColor(mColorWheel.mColors[currentColor]));
您的ColorWheel
类已在getColor
函数中调用Color.parseColor
。
只需使用该函数,因为它已获得随机颜色
relativeLayout.setBackgroundColor(mColorWheel.getColor());
或者,如果要使用mColors阵列:
relativeLayout.setBackgroundColor(Color.parseColor(mColorWheel.mColors[currentColor]));
您的ColorWheel
类已在getColor
函数中调用Color.parseColor
。
只需使用该函数,因为它已获得随机颜色
relativeLayout.setBackgroundColor(mColorWheel.getColor());
或者,如果要使用mColors阵列:
relativeLayout.setBackgroundColor(Color.parseColor(mColorWheel.mColors[currentColor]));
您的ColorWheel
类已在getColor
函数中调用Color.parseColor
。
只需使用该函数,因为它已获得随机颜色
relativeLayout.setBackgroundColor(mColorWheel.getColor());
或者,如果要使用mColors阵列:
relativeLayout.setBackgroundColor(Color.parseColor(mColorWheel.mColors[currentColor]));
java上的simple创建一个ColorWheel类的对象。像ColorWheel cw=new ColorWheel()
一样访问数组,像cw.mColors[i]
为什么不将mColors
的字符串数组更改为int数组呢。因此,例如39add1
将变成0x39add1
,等等。请尝试relativeLayout.setBackgroundColor(Color.parseColor(mColorWheel.mColors[currentColor])代码>@Universe I'm get Variable'mColors'来自一个内部类,需要声明为final。@DanielNugent尝试了这个方法,并说它无法解决。FunFactsActivity.java上的simple创建一个ColorWheel类的对象。像ColorWheel cw=new ColorWheel()
一样访问数组,像cw.mColors[i]
为什么不将mColors
的字符串数组更改为int数组呢。因此,例如39add1
将变成0x39add1
,等等。请尝试relativeLayout.setBackgroundColor(Color.parseColor(mColorWheel.mColors[currentColor])代码>@Universe I'm get Variable'mColors'来自一个内部类,需要声明为final。@DanielNugent尝试了这个方法,并说它无法解决。FunFactsActivity.java上的simple创建一个ColorWheel类的对象。像ColorWheel cw=new ColorWheel()
一样访问数组,像cw.mColors[i]
为什么不将mColors
的字符串数组更改为int数组呢。因此,例如39add1
将变成0x39add1
,等等。请尝试relativeLayout.setBackgroundColor(Color.parseColor(mColorWheel.mColors[currentColor])代码>@Universe I'm get Variable'mColors'来自一个内部类,需要声明为final。@DanielNugent尝试了这个方法,并说它无法解决。FunFactsActivity.java上的simple创建一个ColorWheel类的对象。像ColorWheel cw=new ColorWheel()
一样访问数组,像cw.mColors[i]
为什么不将mColors
的字符串数组更改为int数组呢。因此,例如39add1
将变成0x39add1
,等等。请尝试relativeLayout.setBackgroundColor(Color.parseColor(mColorWheel.mColors[currentColor])代码>@Universe I'm get Variable'mColors'来自一个内部类,需要声明为final。@DanielNugent尝试了这个方法,并说它无法解决。