Android - 从onCreate重启部分

时间:2016-12-06 11:31:16

标签: java android

在我的程序中,我正在创建从列表中填充随机颜色的形状。颜色在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);

            }
}

3 个答案:

答案 0 :(得分:2)

这是诀窍,请调用此方法

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);
    }
    }

答案 1 :(得分:1)

这可能会对你有所帮助,只需输入你的onResume或你要重新启动的方法来自

onCreate(new Bundle()); 

例如,点击这样的按钮

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

答案 2 :(得分:0)

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