Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-从onCreate重新启动部件_Java_Android - Fatal编程技术网

Java Android-从onCreate重新启动部件

Java Android-从onCreate重新启动部件,java,android,Java,Android,在我的程序中,我创建的形状是由列表中的随机颜色填充的。颜色在onCreate中设置。我不希望它有确定的颜色,但要改变颜色多次。如何“重新启动”onCreate部件,以便再次分配颜色 public class MainActivity extends Activity implements OnGestureListener { private Paint paint = new Paint(); @Override

在我的程序中,我创建的形状是由列表中的随机颜色填充的。颜色在onCreate中设置。我不希望它有确定的颜色,但要改变颜色多次。如何“重新启动”onCreate部件,以便再次分配颜色

public class MainActivity extends Activity implements OnGestureListener
{       
            private Paint paint = new Paint();


            @Override
            protected void onCreate(Bundle savedInstanceState)
            {   
                super.onCreate(savedInstanceState);                       
                setContentView(R.layout.activity_main);                           
                Canvas canvas = new Canvas(bg); 

                List<Integer> numbers = Arrays.asList(Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW);
                Collections.shuffle(numbers);

            }
}
public类MainActivity扩展活动实现OnTestureListener
{       
私人油漆=新油漆();
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{   
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
画布=新画布(bg);
列表编号=Arrays.asList(Color.RED、Color.BLUE、Color.GREEN、Color.YELLOW);
收藏。洗牌(数字);
}
}

这可能会对您有所帮助,只需输入您的onResume或您希望从中重新启动oncreate的方法即可

onCreate(new Bundle()); 
例如,单击这样的按钮

btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onCreate(new Bundle()); 
        }
});

如果您试图在从一个活动导航到另一个活动时更改颜色,那么您可能可以尝试在函数中包装更改颜色的代码,并在onResume()中调用该函数(活动的生命周期方法之一)。每次加载活动时都会调用onResume()。

这里是诀窍,调用此方法

loadColors();
在oncreate和任何你想要的地方

public class MainActivity extends Activity implements OnGestureListener
{       
            private Paint paint = new Paint();


            @Override
            protected void onCreate(Bundle savedInstanceState)
            {   
                super.onCreate(savedInstanceState);                       
                setContentView(R.layout.activity_main);                           
                Canvas canvas = new Canvas(bg); 

                loadColors();

            }



         private void loadColors(){
            List<Integer> numbers = Arrays.asList(Color.RED, Color.BLUE,                      
Color.GREEN, Color.YELLOW);
                 Collections.shuffle(numbers);
    }
    }
public类MainActivity扩展活动实现OnTestureListener
{       
私人油漆=新油漆();
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{   
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
画布=新画布(bg);
loadColors();
}
私有void loadColors(){
列表编号=数组.asList(Color.RED,Color.BLUE,
颜色。绿色,颜色。黄色);
收藏。洗牌(数字);
}
}

您想什么时候更改颜色?当活动重新启动时,返回前台,单击按钮…?检查以下问题:,可能这就是您要寻找的。我有一个动画部分,我忘在这里了,动画完成后,颜色应该再次交换。但是,如果你告诉我如何使用按钮,我会将其处理为动画,你能提供一些关于包装内容的更多信息吗?我想尝试一下你的代码,但我正在onCreate中创建形状,这些形状是指
数字
,因此如果我将其从onCreate部分删除,我会出现错误。那么你的方法可行吗?