我完全被卡住了,迷失了方向,需要帮助。我正试图在Android Studio中用Java开发一个交通灯应用程序。这个应用程序的目标是点击一个按钮并循环浏览不同的交通灯,同时在按钮上显示与交通灯对应的不同颜色和不同的文字。该应用程序的初始状态被设置为红灯,红灯图像与按钮对应,显示红色的文字 "STOP"。然后它循环到绿灯,显示绿灯的图像被点亮,按钮显示为绿色,文字为 "GO"。然后,它循环到黄灯,黄灯图像显示按钮颜色为黄色,文字为 "等待"。最后,它又循环到红灯的初始状态,一直无限循环下去。
我的思考过程是为每一块创建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++) {