Использование таймера обратного отсчета на дополнительной странице - PullRequest
0 голосов
/ 19 октября 2019

Действительно новый для Android кодирования и Java.

У меня есть простой таймер обратного отсчета даты, который работает нормально, когда он находится на 1 экране, и я хочу, чтобы у меня был тот же код, но на 2-м экране.

1-й экран будет иметь метод onClick, который переместит вас на 2-й экран с обратным отсчетом даты.

Он работает на хоне, но таймер обратного отсчета отсутствует, он имеет всефон и текст, но нет обратного отсчета.

Код, указанный в displayfloridaactivity.java (он отличается от MainActivity.Java

Код не отображается с ошибками и будет работать на телефоне, но обратный отсчет даты

package com.example.countdown;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;

import static com.example.countdown.MainActivity.EXTRA_MESSAGE;

public class DisplayFloridaActivity extends AppCompatActivity {

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

public void Florida(View view) {
    Intent intent = new Intent( this, DisplayFloridaActivity.class );
    EditText editText = (EditText) findViewById( R.id.editText );
    String message = editText.getText().toString();
    intent.putExtra( EXTRA_MESSAGE, message );
    startActivity( intent );

}

    public class DisplayFloridactivity extends AppCompatActivity {

    private TextView txtDay, txtHour, txtMinute, txtSecond;
    private TextView tvEventStart;
    private Handler handler;
    private Runnable runnable;
    private Bundle savedInstanceState;


    @Override
    public void onCreate(Bundle savedInstanceState) {

        this.savedInstanceState = savedInstanceState;
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );

        txtDay = (TextView) findViewById( R.id.txtDay );
        txtHour = (TextView) findViewById( R.id.txtHour );
        txtMinute = (TextView) findViewById( R.id.txtMinute );
        txtSecond = (TextView) findViewById( R.id.txtSecond );
        tvEventStart = (TextView) findViewById( R.id.tveventStart );

        countDownStart();
    }

    public void countDownStart() {
        handler = new Handler();
        runnable = new Runnable() {
            @Override
            public void run() {
                handler.postDelayed( this, 1000 );
                try {
                    SimpleDateFormat dateFormat = new SimpleDateFormat(
                            "dd-MM-yyyy" );
                    Date futureDate = dateFormat.parse( "31-8-2020" );
                    Date currentDate = new Date();
                    if (!currentDate.after( futureDate )) {
                        long diff = futureDate.getTime()
                                - currentDate.getTime();
                        long days = diff / (24 * 60 * 60 * 1000);
                        diff -= days * (24 * 60 * 60 * 1000);
                        long hours = diff / (60 * 60 * 1000);
                        diff -= hours * (60 * 60 * 1000);
                        long minutes = diff / (60 * 1000);
                        diff -= minutes * (60 * 1000);
                        long seconds = diff / 1000;
                        txtDay.setText( "" + String.format( "%02d", days ) );
                        txtHour.setText( "" + String.format( "%02d", 
hours ) );
                        txtMinute.setText( "" + String.format( "%02d", 
minutes ) );
                        txtSecond.setText( "" + String.format( "%02d", 
seconds ) );
                    } else {
                        tvEventStart.setVisibility( View.VISIBLE );
                        tvEventStart.setText( "Holiday is over, get a new 
one booked ASAP!" );
                        textViewGone();

                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };
        handler.postDelayed( runnable, 1 * 1000 );
    }

    public void textViewGone() {
        findViewById( R.id.LinearLayout1 ).setVisibility( View.GONE );
        findViewById( R.id.LinearLayout2 ).setVisibility( View.GONE );
        findViewById( R.id.LinearLayout3 ).setVisibility( View.GONE );
        findViewById( R.id.LinearLayout4 ).setVisibility( View.GONE );
        findViewById( R.id.textViewheader1 ).setVisibility( View.GONE );
        findViewById( R.id.textViewheader2 ).setVisibility( View.GONE );
    }
}    }

нет ошибок в коде, который я вижу.

1 Ответ

0 голосов
/ 19 октября 2019

Вы уверены, что начинаете правильную деятельность? В своем намерении вы указываете DisplayFloridaActivity (верхний регистр A в Activty), но ваш код в DisplayFloridactivity (нижний регистр a в activty).

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