Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 Studio_Java_Android_Android Studio - Fatal编程技术网

Java 交通灯应用程序Android Studio

Java 交通灯应用程序Android Studio,java,android,android-studio,Java,Android,Android Studio,我完全迷路了,需要帮助。我正在尝试使用Java在Android Studio中开发一个红绿灯应用程序。该应用程序的目标是单击一个按钮并在不同的交通灯之间循环,同时在按钮上显示与具有不同文本的交通灯对应的不同颜色。应用程序的初始状态设置为红灯,红灯图像与按钮对应,按钮显示红色,文本为“停止”。然后,它循环到绿灯,显示绿灯图像,按钮显示绿色,文本为“开始”然后,它循环到黄色灯光,黄色灯光图像显示按钮颜色黄色,文本为“等待”。最后,它循环回到红色灯光的初始状态,并以无限循环的方式继续运行 我的想法是为

我完全迷路了,需要帮助。我正在尝试使用Java在Android Studio中开发一个红绿灯应用程序。该应用程序的目标是单击一个按钮并在不同的交通灯之间循环,同时在按钮上显示与具有不同文本的交通灯对应的不同颜色。应用程序的初始状态设置为红灯,红灯图像与按钮对应,按钮显示红色,文本为“停止”。然后,它循环到绿灯,显示绿灯图像,按钮显示绿色,文本为“开始”然后,它循环到黄色灯光,黄色灯光图像显示按钮颜色黄色,文本为“等待”。最后,它循环回到红色灯光的初始状态,并以无限循环的方式继续运行

我的想法是为每一块创建3个不同的数组:图像、按钮颜色和按钮文本。与每个数组一起,我尝试为每个数组创建一个for循环,以循环通过数组来显示相应的片段。然而,我遇到了在图像中循环的问题,因为它们不是自然的数据类型,也不知道如何定义它们。另外,当我尝试循环文本和颜色时,它将循环到第一项,但不会循环到数组的其余部分。任何帮助都将不胜感激

    public class MainActivity extends AppCompatActivity {

    Button btn = null;
    ImageView iv = null;
    ImageView redTrafficLight;
    ImageView greenTrafficLight = null;
    ImageView yellowTrafficLight = null;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initialize();
        registerListener();
    }

    private void initialize() {
        // assign button variable
        btn = (Button) findViewById(R.id.btn_changeLight);
        iv = (ImageView) findViewById(R.id.iv_TrafficLight);

        redTrafficLight.setImageResource(R.drawable.red2);
        greenTrafficLight.setImageResource(R.drawable.green);
        yellowTrafficLight.setImageResource(R.drawable.yellow);

        btn.setText("STOP");
        btn.setBackgroundColor(Color.RED);


    }

    private void registerListener() {
        btn.setOnClickListener(buttonListener);
    }

    private View.OnClickListener buttonListener = new View.OnClickListener() {
        public void onClick(View v) {
            final int[] colors = {Color.RED, Color.GREEN, Color.YELLOW};
            final String[] text = {"STOP", "GO", "WAIT"};
            final ImageView[] images = {redTrafficLight, greenTrafficLight, yellowTrafficLight};


            int current = 0;
            int currentText = 0;
            
            int i = 0;
            
            for(i = 0; i < colors.length; i++ ) {
                btn.setBackgroundColor(colors[current + 1]);
            }
            for (i = 0; i < text.length; i++) {
                btn.setText(text[currentText + 1]);
            }
            for (i = 0; i < images.length; i++) {
               
            }
        }
    };

}
public类MainActivity扩展了AppCompatActivity{
按钮btn=null;
ImageView iv=空;
图像视图红绿灯;
ImageView绿色交通灯=空;
ImageView黄色交通灯=空;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
初始化();
registerListener();
}
私有void初始化(){
//分配按钮变量
btn=(按钮)findViewById(R.id.btn\u changeLight);
iv=(图像视图)findViewById(R.id.iv_交通灯);
设置图像资源(R.drawable.red2);
绿色交通灯。设置图像资源(R.可绘制。绿色);
黄色TrafficLight.setImageResource(R.drawable.yellow);
btn.setText(“停止”);
btn.setBackgroundColor(颜色为红色);
}
私有无效注册表列表器(){
btn.setOnClickListener(按钮Listener);
}
private View.OnClickListener按钮Listener=new View.OnClickListener(){
公共void onClick(视图v){
final int[]colors={Color.RED,Color.GREEN,Color.YELLOW};
最后一个字符串[]text={“STOP”、“GO”、“WAIT”};
最终图像视图[]图像={红色交通灯、绿色交通灯、黄色交通灯};
int电流=0;
int currentText=0;
int i=0;
对于(i=0;i
当前值始终为0。您根本没有使用
i
。是不是应该是
btn.setBackgroundColor(colors[i])
?是的,你说得对,把它关掉了。我在以前的版本上使用了current,但忘记删除以前的版本。既然它是一个ImageView而不是和int,我该如何循环遍历这些图像呢?