-
[Android] '오늘 하루 그만 보기' 구현안드로이드 | Android/잡기장 | Notebook 2017. 2. 9. 13:22
AlertDialog에서 '오늘 하루 그만 보기'를 구현하여 정리하였습니다.
SharedPreferences를 이용하였습니다.
코드를 확인해보고, 이용할 부분을 사용하시면 됩니다.
package com.example.preferencestest; import androidx.appcompat.app.AppCompatActivity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.util.Log; import java.text.SimpleDateFormat; import java.util.Date; public class MainActivity extends AppCompatActivity { // Debug tag, for logging static final String TAG = "Main"; // SharedPreferences 정의 private SharedPreferences SPreferences; // SharedPreferences 접근 이름, 저장 데이터 초기화 private final String NameSPreferences = "Day"; private String strSDFormatDay = "0"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // '오늘 그만 보기' 기능을 위한 날짜 획득 long CurrentTime = System.currentTimeMillis(); // 현재 시간을 msec 단위로 얻음 Date TodayDate = new Date(CurrentTime); // 현재 시간 Date 변수에 저장 SimpleDateFormat SDFormat = new SimpleDateFormat("dd"); strSDFormatDay = SDFormat.format(TodayDate); // 'dd' 형태로 포맷 변경 // SharedPreferences 획득 SPreferences = PreferenceManager.getDefaultSharedPreferences(this); String strSPreferencesDay = SPreferences.getString(NameSPreferences, "0"); // 공지사항 알림창 띄움 if((Integer.parseInt(strSDFormatDay) - Integer.parseInt(strSPreferencesDay)) != 0) StartMainAlertDialog(); } // 초기 실행시 도움말로 유도하는 알림창 public void StartMainAlertDialog() { // Dialog Message 설정 String strMessage = "공지사항 샘플입니다."; // AlertDialog 정의 AlertDialog.Builder MainAlertDialog = new AlertDialog.Builder(MainActivity.this); MainAlertDialog.setTitle("공지사항"); // Title 설정 MainAlertDialog.setIcon(android.R.drawable.ic_dialog_info); // Icon 설정 MainAlertDialog.setMessage(strMessage); // 메시지 설정 // positive 버튼 설정 MainAlertDialog.setPositiveButton("취소", new DialogInterface.OnClickListener() { // Positive Button에 대한 클릭 이벤트 처리를 구현 @Override public void onClick(DialogInterface dialog, int which) { Log.d(TAG, "Close the dialog"); dialog.dismiss(); // dialog 닫기 } }); // Negative 버튼 설정 MainAlertDialog.setNegativeButton("이동", new DialogInterface.OnClickListener() { // Negative Button에 대한 클릭 이벤트 처리를 구현 @Override public void onClick(DialogInterface dialog, int which) { /* 작업 예시) Intent InformationIntent = new Intent(Main.this, Information.class); startActivity(InformationIntent); */ Log.d(TAG, "Move to activity"); dialog.dismiss(); // dialog 닫기 } }); // Neutral 버튼 설정 MainAlertDialog.setNeutralButton("오늘 그만 보기", new DialogInterface.OnClickListener() { // Neutral Button에 대한 클릭 이벤트 처리를 구현 @Override public void onClick(DialogInterface dialog, int which) { SharedPreferences.Editor SPreferencesEditor = SPreferences.edit(); SPreferencesEditor.putString(NameSPreferences, strSDFormatDay); // 오늘 '일(day)' 저장 SPreferencesEditor.commit(); // important to save the preference Log.d(TAG, "Close for a day"); dialog.dismiss(); // dialog 닫기 } }); // AlertDialog 화면 출력 MainAlertDialog.show(); } }
'안드로이드 | Android > 잡기장 | Notebook' 카테고리의 다른 글
[Android] 프로젝트 복사 및 패키지 변경 (0) 2017.09.21 [Android] 인앱 결제(In-app Billing) 구현 (0) 2017.06.09 [Android] 서명된/Release APK 추출 (0) 2017.03.29 [Android] Google map API Key 발급 받기 (0) 2017.03.28 댓글