Java 如何将数组的值传递给另一个类?

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

我试图将另一个类中的颜色数组值传递给Android Studio中的FunFactsActivity。现在,我得到一个错误,视图中的setBackgroundColor(int)无法应用于(java.lang.String)。
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尝试了这个方法,并说它无法解决。