Android 为什么交通灯坏了
我做了这段代码,想让一个交通灯打开和关闭几次,然后停下来,随机选择两个灯中的一个,但程序会执行该操作,但不会像操作那样显示不断变化的灯Android 为什么交通灯坏了,android,Android,我做了这段代码,想让一个交通灯打开和关闭几次,然后停下来,随机选择两个灯中的一个,但程序会执行该操作,但不会像操作那样显示不断变化的灯 private ImageView redLight; private ImageView greenLight; private Button Button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt
private ImageView redLight;
private ImageView greenLight;
private Button Button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.traffic_lights);
redLight = (ImageView) findViewById(R.id.red_light);
greenLight = (ImageView) findViewById(R.id.green_light);
Button = (Button) findViewById(R.id.start_button);
// Assign click listeners to buttons
Button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v == Button) {
int flag = 0;
for (int i = 0; i <= 100; i++) {
if (flag == 0) {
turnOnRedLight();
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
Log.i("Traffic", "Red");
flag = 1;
} else {
turnOnGreenLight();
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
Log.i("Traffic", "Green");
flag = 0;
}
}
}
}
private void turnOnRedLight() {
redLight.setImageResource(R.drawable.red_on);
}
private void turnOnGreenLight() {
greenLight.setImageResource(R.drawable.green_on);
}
private ImageView红灯;
私家影景绿灯;
私人按钮;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、交通灯);
红灯=(图像视图)findViewById(R.id.红灯);
绿灯=(图像视图)findViewById(R.id.绿灯);
按钮=(按钮)findViewById(R.id.start\u按钮);
//将单击侦听器指定给按钮
setOnClickListener(此);
}
@凌驾
公共void onClick(视图v){
如果(v==按钮){
int标志=0;
对于(inti=0;i你只睡了100毫秒,因此你可能看不到灯光的变化。将其更改为1000甚至500左右,你可能会看到变化
Thread.sleep(1000);
还有,几张便条
虽然使用此代码可能没有问题,但在UI线程上睡眠通常不是一个好主意。使用线程并使用runOnUiThread()
更新UI
,使用AsyncTask
或Handler
不要将你的按钮命名为“按钮”。将它命名为非Android关键字的名称,如按钮
、btn
、开始按钮
、开始按钮
,或类似的名称
在区分单击了哪个按钮时,请使用按钮
id
而不是对象
。因此,您可能希望将其更改为
@Override
public void onClick(View v) {
if (v.getId() == (R.id.start_button)) {
您也可以在此处使用switch
语句,但这并不重要。它的作用是什么?