Android SharedPreference로 스톱워치를 프로그래밍하는 방법

user2809321

Android SDK에서 스톱워치를 프로그래밍하고 있지만 뒤로 눌러도 계속 진행하고 싶습니다. 활동 수명주기를 어느 정도 이해하고 onPause 및 onResume 메서드를 무시해야하지만 SharePreference 편집기가 Chronometer 개체를 사용할 수 없기 때문에 어떻게해야할지 모르겠습니다.

    package com.example.taekwondobuddy.util;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.LinearLayout;



 public class Time extends Activity {
 Chronometer mChronometer;

@Override
  protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);

mChronometer = new Chronometer(this);
layout.addView(mChronometer);

Button startButton = new Button(this);
startButton.setText("Start");
startButton.setOnClickListener(mStartListener);
layout.addView(startButton);

Button stopButton = new Button(this);
stopButton.setText("Stop");
stopButton.setOnClickListener(mStopListener);
layout.addView(stopButton);

Button resetButton = new Button(this);
resetButton.setText("Reset");
resetButton.setOnClickListener(mResetListener);
layout.addView(resetButton);        

setContentView(layout);
}



View.OnClickListener mStartListener = new OnClickListener() {
public void onClick(View v) {
    mChronometer.start();

}
};

View.OnClickListener mStopListener = new OnClickListener() {
public void onClick(View v) {
    mChronometer.stop();

}
};

View.OnClickListener mResetListener = new OnClickListener() {
public void onClick(View v) {
    mChronometer.setBase(SystemClock.elapsedRealtime());

 }
 };
 }

조언이나 조언이 있습니까? 도움을 주시면 감사하겠습니다!

하레 쉬 첼라 나
// try this
public class Time extends Activity {
    Chronometer mChronometer;
    private SharedPreferences sharedPreferences;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        sharedPreferences = getSharedPreferences(getString(R.string.app_name), MODE_PRIVATE);
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        mChronometer = new Chronometer(this);

        layout.addView(mChronometer);

        Button startButton = new Button(this);
        startButton.setText("Start");
        startButton.setOnClickListener(mStartListener);
        layout.addView(startButton);

        Button stopButton = new Button(this);
        stopButton.setText("Stop");
        stopButton.setOnClickListener(mStopListener);
        layout.addView(stopButton);

        Button resetButton = new Button(this);
        resetButton.setText("Reset");
        resetButton.setOnClickListener(mResetListener);
        layout.addView(resetButton);

        setContentView(layout);
    }

    private void showElapsedTime() {
        long elapsedMillis = SystemClock.elapsedRealtime() - mChronometer.getBase();
        Toast.makeText(MyActivity.this, "Elapsed milliseconds: " + elapsedMillis,
                Toast.LENGTH_SHORT).show();
    }

    View.OnClickListener mStartListener = new View.OnClickListener() {
        public void onClick(View v) {
            int stoppedMilliseconds = 0;

            String chronoText = mChronometer.getText().toString();
            String array[] = chronoText.split(":");
            if (array.length == 2) {
                stoppedMilliseconds = Integer.parseInt(array[0]) * 60 * 1000
                        + Integer.parseInt(array[1]) * 1000;
            } else if (array.length == 3) {
                stoppedMilliseconds = Integer.parseInt(array[0]) * 60 * 60 * 1000
                        + Integer.parseInt(array[1]) * 60 * 1000
                        + Integer.parseInt(array[2]) * 1000;
            }

            mChronometer.setBase(SystemClock.elapsedRealtime() - stoppedMilliseconds);
            mChronometer.start();
        }
    };

    View.OnClickListener mStopListener = new View.OnClickListener() {
        public void onClick(View v) {
            mChronometer.stop();
        }
    };

    View.OnClickListener mResetListener = new View.OnClickListener() {
        public void onClick(View v) {
            mChronometer.setBase(SystemClock.elapsedRealtime());
        }
    };

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        prepareSharedData();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mChronometer.setText(sharedPreferences.getString("time", "00:00"));
    }

    @Override
    protected void onPause() {
        super.onPause();
        prepareSharedData();
    }

    public void prepareSharedData(){
        String chronoText = mChronometer.getText().toString();
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("time", chronoText);
        editor.commit();
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android에서 프로그래밍 방식으로 SMS를 삭제하는 방법

분류에서Dev

Android에서 프로그래밍 방식으로 SMS를 삭제하는 방법

분류에서Dev

프로그래밍 방식으로 Android Numpad를 수행하는 방법

분류에서Dev

Android 프로그래밍 용 JDK를 다운로드하는 방법

분류에서Dev

Android 프로그래밍 용 JDK를 다운로드하는 방법

분류에서Dev

프로그래밍 방식으로 Android에서 터치를 자동으로 수행하는 방법

분류에서Dev

프로그래밍 방식으로 아래로 스크롤하는 방법 (Android, Kotlin)?

분류에서Dev

Android 10에서 프로그래밍 방식으로 Android 앱을 설치하는 방법

분류에서Dev

Android에서 프로그래밍 방식으로 textinputlayout에 자동 완성 텍스트를 추가하는 방법

분류에서Dev

android : id를 android에서 프로그래밍 방식으로 설정하는 방법은 무엇입니까?

분류에서Dev

Android 프로그래밍 방식으로 layout_below를 TextView로 변경하는 방법

분류에서Dev

프로그래밍 방식으로 CheckBox를 사용하는 Android Eclipse findViewByID

분류에서Dev

무한대로 스톱워치를 실행하는 방법

분류에서Dev

프로그래밍 방식으로 테마 색상을 변경하는 방법 : 스타일, 속성 android?

분류에서Dev

프로그래밍 방식으로 Android 10에서 삭제 된 연락처를 복구하는 방법

분류에서Dev

프로그래밍 방식으로 Android 화면 크기를 감지하는 방법 (4 가지 표준 크기)?

분류에서Dev

Android에서 프로그래밍 방식으로 보류 모드를 확인하는 방법

분류에서Dev

Android에서 프로그래밍 방식으로 GridView에 뷰를 추가하는 방법은 무엇입니까?

분류에서Dev

Android에서 프로그래밍 방식으로 레이아웃 높이를 변경하는 방법

분류에서Dev

Android에서 프로그래밍 방식으로 레이아웃 높이를 변경하는 방법

분류에서Dev

프로그래밍 방식으로 Android에서 벨소리를 다시 재설정하는 방법

분류에서Dev

Android에서 프로그래밍 방식으로 EditText에서 ID를 설정하는 방법

분류에서Dev

프로그래밍 방식으로 Android에서 두 비디오를 혼합 / 병합하는 방법

분류에서Dev

Android : 프로그래밍 방식으로 키보드를 180도 회전하는 방법은 무엇입니까?

분류에서Dev

Android M : 잠자기 모드를 프로그래밍 방식으로 비활성화하는 방법

분류에서Dev

Android에서 프로그래밍 방식으로 사운드를 변경하는 방법

분류에서Dev

Android 프로그래밍에서 jsoup을 사용하여 HTML에서이 스크립트를 얻는 방법

분류에서Dev

C #으로 스톱워치를 만드는 방법

분류에서Dev

Android의 클래스에서 프로그래밍 방식으로 textview 크기를 늘리는 방법

Related 관련 기사

  1. 1

    Android에서 프로그래밍 방식으로 SMS를 삭제하는 방법

  2. 2

    Android에서 프로그래밍 방식으로 SMS를 삭제하는 방법

  3. 3

    프로그래밍 방식으로 Android Numpad를 수행하는 방법

  4. 4

    Android 프로그래밍 용 JDK를 다운로드하는 방법

  5. 5

    Android 프로그래밍 용 JDK를 다운로드하는 방법

  6. 6

    프로그래밍 방식으로 Android에서 터치를 자동으로 수행하는 방법

  7. 7

    프로그래밍 방식으로 아래로 스크롤하는 방법 (Android, Kotlin)?

  8. 8

    Android 10에서 프로그래밍 방식으로 Android 앱을 설치하는 방법

  9. 9

    Android에서 프로그래밍 방식으로 textinputlayout에 자동 완성 텍스트를 추가하는 방법

  10. 10

    android : id를 android에서 프로그래밍 방식으로 설정하는 방법은 무엇입니까?

  11. 11

    Android 프로그래밍 방식으로 layout_below를 TextView로 변경하는 방법

  12. 12

    프로그래밍 방식으로 CheckBox를 사용하는 Android Eclipse findViewByID

  13. 13

    무한대로 스톱워치를 실행하는 방법

  14. 14

    프로그래밍 방식으로 테마 색상을 변경하는 방법 : 스타일, 속성 android?

  15. 15

    프로그래밍 방식으로 Android 10에서 삭제 된 연락처를 복구하는 방법

  16. 16

    프로그래밍 방식으로 Android 화면 크기를 감지하는 방법 (4 가지 표준 크기)?

  17. 17

    Android에서 프로그래밍 방식으로 보류 모드를 확인하는 방법

  18. 18

    Android에서 프로그래밍 방식으로 GridView에 뷰를 추가하는 방법은 무엇입니까?

  19. 19

    Android에서 프로그래밍 방식으로 레이아웃 높이를 변경하는 방법

  20. 20

    Android에서 프로그래밍 방식으로 레이아웃 높이를 변경하는 방법

  21. 21

    프로그래밍 방식으로 Android에서 벨소리를 다시 재설정하는 방법

  22. 22

    Android에서 프로그래밍 방식으로 EditText에서 ID를 설정하는 방법

  23. 23

    프로그래밍 방식으로 Android에서 두 비디오를 혼합 / 병합하는 방법

  24. 24

    Android : 프로그래밍 방식으로 키보드를 180도 회전하는 방법은 무엇입니까?

  25. 25

    Android M : 잠자기 모드를 프로그래밍 방식으로 비활성화하는 방법

  26. 26

    Android에서 프로그래밍 방식으로 사운드를 변경하는 방법

  27. 27

    Android 프로그래밍에서 jsoup을 사용하여 HTML에서이 스크립트를 얻는 방법

  28. 28

    C #으로 스톱워치를 만드는 방법

  29. 29

    Android의 클래스에서 프로그래밍 방식으로 textview 크기를 늘리는 방법

뜨겁다태그

보관