반응형
앱에서 설명이나 공지 창이 뜰 때 매번 반복해서 닫기 버튼이 눌러 닫는다면 정말 불편합니다.
그래서 닫기 버튼뿐만 아니라 다시 보지 않기 버튼도 있는 것을 볼 수 있는데요.
오늘은 SharedPreference를 이용하여 다시 보지 않기 버튼을 눌렀을 때 앱을 껐다 켜도 더 이상 해당 창이 뜨지 않는 기능을 만들어보도록 하겠습니다.
우선 이와 같은 기능을 구현하기 위해서는 SharedPreferences를 많이 사용합니다.
SharedPreferences는 안드로이드 앱에서 간단한 데이터를 저장하고 관리하기 위한 편리한 방법 중 하나입니다.
그리하여 다시 보지 않기 버튼을 눌렀을 때 간단한 값을 저장하고 불러온 후, 값에 따라 창을 띄울지 말지 결정할 수 있습니다.
그래서 아래와 같이 SharedPreferences를 이용하면 [예시 1]과 같은 창을 만들고 다시 보지 않기 버튼을 눌렀을 때 더 이상 창이 뜨지 않도록 할 수 있습니다.
public class Game2Activity extends AppCompatActivity {
SharedPreferences sharedPreferences_game2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
sharedPreferences_game2 = getSharedPreferences("dialog_game2", Context.MODE_PRIVATE); // dialog_game2라는 이름의 SharedPreferencs 객체 생성
int key = sharedPreferences_game2.getInt("key2", 0); // "key2"는 저장할 데이터의 키이고, 0은 해당 키에 대한 값입니다.
if(key == 0) // key값이 0일때 커스텀 Dialog창 뜨도록 코드 입력
Dialog dialog = new Dialog(Game2Activity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_game2);
dialog.setCanceledOnTouchOutside(false);
dialog.show();
Button nobutton = (Button)dialog.findViewById(R.id.noButton_game2); // '다시 보지 않기' 버튼
Button yesbutton = (Button)dialog.findViewById(R.id.yesButton_game2); // '확인' 버튼
nobutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences.Editor editor = sharedPreferences_game2.edit();
editor.putInt("key2", 1); // '다시 보지 않기' 버튼을 눌렀을 때 "key2"의 value 값을 1로 변경
editor.apply();
dialog.dismiss();
}
});
yesbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
}
}
}
//dialog_game2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:gravity="center"
android:minWidth="300dp"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/corfirmtextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="50dp"
android:text="타이머를 누르고 5초에 가장 가깝게 누르는 사람이\n승리하는 게임입니다."
android:textColor="#000000"
android:textSize="15sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<android.widget.Button
android:id="@+id/noButton_game2"
android:background="@drawable/balence_button_background"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginEnd="7dp"
android:layout_weight="1"
android:text="다시 보지 않기"
android:textSize="14sp" />
<android.widget.Button
android:id="@+id/yesButton_game2"
android:background="@drawable/balence_button_background"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:text="확인"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
반응형
'안드로이드 스튜디오 앱 개발 > 실제 앱 개발 과정' 카테고리의 다른 글
앱 개발 Admob 게시자 콘텐츠보다 광고 또는 유료 프로모션 자료가 더 많음 [간단한 술게임] (0) | 2024.07.02 |
---|---|
안드로이드 스튜디오 상태 바 및 타이틀 바 제거하기 (0) | 2024.05.03 |
안드로이드 스튜디오 업데이트 확인 방법 + 버전 확인하기 [Android Studio] (0) | 2024.04.18 |
[Android Studio] SharedPreferences로 아이템을 저장하고 For문을 이용하여 저장했던 모든 아이템 조회하기 - 망댕이의 앱 개발 (0) | 2024.04.16 |
[Android Studio] 내 휴대폰 단말기로 제작한 애플리케이션(APP) 실행해서 검토하기 (0) | 2023.07.13 |