Как сделать цикл в Java и Android Studio - PullRequest
1 голос
/ 04 июля 2019

Я сделал приложение для будильника, но я пытаюсь создать домашнюю страницу, где пользователь может видеть все установленные им сигналы тревоги. Я хочу бесконечно запускать блок кода, который обновляет домашнюю страницу моего приложения, но методы, которые я обнаружил, не сработали (т. Е. С использованием цикла таймера, while и цикла for). Любое предложение мне очень поможет, и любая критика кода поможет, спасибо всем!

Я пытался Timers, Do-While, While и For Loops

Цикл «Пока», который в данный момент существует, вызывает ошибку, и приложение даже не запускается.

Весь код, с которым мне нужна помощь, находится в цикле while.

Я думаю, что это ошибка

(I / zygote64: Отклонение повторной инициализации для ранее неудачного classjava.lang.Class: java.lang.NoClassDefFoundError: Неудачное разрешение: Landroid / view / View $ OnUnhandledKeyEventListener;)

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

    final Button selectAlarm1 = (Button) findViewById(R.id.selectAlarm1);
    final Button selectAlarm2 = (Button) findViewById(R.id.selectAlarm2);
    final Button selectAlarm3 = (Button) findViewById(R.id.selectAlarm2);

    selectAlarm1.setVisibility(View.INVISIBLE);
    selectAlarm2.setVisibility(View.INVISIBLE);
    selectAlarm3.setVisibility(View.INVISIBLE);

    final TextView textView = (TextView) findViewById(R.id.textView);

    final Button createAlarm = (Button) findViewById(R.id.createAlarm);
    final Button createAlarm2 = (Button) findViewById(R.id.createAlarm2);
    final Button createAlarm3 = (Button) findViewById(R.id.createAlarm3);

    createAlarm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openMainActivity();
                createAlarm2.bringToFront();
            }
        });
    createAlarm2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openMainActivity2();
                createAlarm3.bringToFront();
            }
        });
    createAlarm3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openMain3Activity();
            }
        });

    selectAlarm1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openMainActivity();
            }
        });
        selectAlarm2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openMainActivity2();
            }
        });
        selectAlarm3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openMain3Activity();
            }
        });

    while(true){
            if (Global.intHour1 != 0 && Global.intMinute1 != 0) {
                textView.setVisibility(View.GONE);
                selectAlarm1.setVisibility(View.VISIBLE);

                //fixing minute format
                if (Global.intMinute1 <= 9) {
                    selectAlarm1.setText("Alarm 1 is set for " + 
Global.intHour1 + ":0" + Global.intMinute1);
                } else {
                    selectAlarm1.setText("Alarm 1 is set for " + 
Global.intHour1 + ":" + Global.intMinute1);
                }

            } else if (Global.intHour1 == 0 && Global.intMinute1 == 0) {

                textView.setVisibility(View.VISIBLE);

            }
            if (Global.intHour2 != 0 && Global.intMinute2 != 0) {
                selectAlarm2.setVisibility(View.VISIBLE);

                //fixing minute format
                if (Global.intMinute2 <= 9) {
                    selectAlarm2.setText("Alarm 1 is set for " + 
Global.intHour2 + ":0" + Global.intMinute2);
                } else {
                    selectAlarm2.setText("Alarm 1 is set for " + 
Global.intHour2 + ":" + Global.intMinute2);
                }
            } else {

            }
            if (Global.intHour3 != 0 && Global.intMinute3 != 0) {
                selectAlarm3.setVisibility(View.VISIBLE);

                //fixing minute format
                if (Global.intMinute3 <= 9) {
                    selectAlarm3.setText("Alarm 1 is set for " + 
Global.intHour3 + ":0" + Global.intMinute3);
                } else {
                    selectAlarm3.setText("Alarm 1 is set for " + 
Global.intHour3 + ":" + Global.intMinute3);
                }
            }
            else {

            }
            if (selectAlarm1.getVisibility() == View.INVISIBLE && 
selectAlarm2.getVisibility() == View.INVISIBLE && 
selectAlarm3.getVisibility() == View.INVISIBLE) {
                textView.setVisibility(View.VISIBLE);

            }
            else
            {

            }
        }
    }


    public void openMainActivity () {

        Intent openAlarm = new Intent(this, MainActivity.class);

        startActivity(openAlarm);

    }
    public void openMainActivity2 () {

        Intent openAlarm2 = new Intent(this, MainActivity2.class);

        startActivity(openAlarm2);

    }
    public void openMain3Activity () {

        Intent openAlarm3 = new Intent(this, Main3Activity.class);

        startActivity(openAlarm3);

    }
    public void makeTextVisible () {


    }

}

Я хочу, чтобы код распознавал при изменении intHour1-3 и intMinute1-3 и изменял состояние видимости кнопки, чтобы при возвращении пользователя на домашнюю страницу он мог видеть, какие аварийные сигналы установлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...