아래와 같이 SharedPreferences를 저장할 수 있는 클래스를 하나 만드세요.
public class AppConfig {
private static final String PREF_NAME = "appConfig";
private static final String KEY_ONBOARDED = "onboarded";
private final SharedPreferences prefs;
public AppConfig(Context context) {
prefs = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
}
public boolean isOnBoarded() {
return prefs.getBoolean(KEY_ONBOARDED, false);
}
public void setOnBoarded(boolean value) {
prefs.edit().putBoolean(KEY_ONBOARDED, value).apply();
}
}
그리고 sub1에서 isBoarded를 읽어서 true 이면 버튼확인 화면으로 가게 하구요, 아니면 등록화면으로 가게하세요.
먼저 액티비티 이름을 알기 쉽게 바꾸세요.
sub1 -> SplashActivity
main -> RegisterActivity
sub2 -> ??? 버튼 화면이 뭔지 모르겠네요. AppTour같이 보이긴하는데...
sub3 -> WelcomeActivity(?)
public class SlpashActivity extends AppCompatActivity {
private AppConfig appConfig;
@Override
protected void onCreate(Bundle savedInstanceState) {
appConfig = new AppConfig(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
setupViews();
}
private void setupViews() {
if (appConfig.isOnBoarded()) {
showWelcome();
return;
}
showRegister();
}
private void showRegister() {
RegisterActivity.show(this);
this.finish();
}
private void showWelcome() {
WelcomeActivity.show(this);
this.finish();
}
}
WelcomeActivity에서는 버튼 확인시 setOboarded = true로 만드시면 됩니다.
public class WelcomeActivity extends AppCompatActivity {
public static void show(Context context) {
Intent intent = new Intent(context, WelcomeActivity.class);
context.startActivity(intent);
}
private AppConfig appConfig;
@Override
protected void onCreate(Bundle savedInstanceState) {
appConfig = new AppConfig(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
setupViews();
}
private void setupViews() {
findViewById(R.id.confirmBtn).setOnClickListener(view -> {
appConfig.setOnBoarded(true);
showMain();
});
}
private void showMain() {
MainActivity.show(this);
this.finish();
}
}