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