давайте разберем вашу проблему на более мелкие. Вам понадобятся действия: MainActivity и PermissionsActivity (добавьте кнопку с идентификатором «да» и кнопку с идентификатором «нет».
A) Запустите действие только один раз. Мы будем делать это, используя SharedPreferences и сохраняя логическое значение, которое, если оно истинно, означает, что диалог был показан ранее, и, в противном случае, он не был показан.
// In MainActivity.class
String MY_PREFS_NAME = "my_prefs"; // can be changed, but it must be done so everywhere
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
Boolean bool = prefs.getBoolean("hasbeenshown", false);
if (!bool){
// Go to the request dialogue activity
Intent myIntent = new Intent(MainActivity.this, PermissionsActivity.class);
startActivity(myIntent);
}
// otherwise, if bool = true, activity has been shown and there is no need to redirect
B) Если пользователь отвечает,перенаправьте на MainActivity и сохраните ответ.
// In PermissionsActivity.class
String MY_PREFS_NAME = "my_prefs"; // can be changed, but it must be done so everywhere
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
Button yes = (Button) findViewById(R.id.button1);
yes.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Do stuff when they accept
// ...
// Store the answer
store(true); // true means that user said yes
}
});
Button no = (Button) findViewById(R.id.button1);
no.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Do stuff when they !accept
// ...
// Store the answer
store(false); // false means that user said no
}
});
void store(Boolean answer){
// Store the answer
editor.putBoolean("answer", answer);
// Don't show the message again
editor.putBoolean("hasbeenshown", true);
// Store the previous edits
editor.commit();
// Redirect to MainActivity
Intent myIntent = new Intent(PermissionsActivity.this, MainActivity.class);
startActivity(myIntent);
}
C) ПРИЛОЖЕНИЕ: Вы всегда можете получить ответ от любого действия с помощью следующего кода.
String MY_PREFS_NAME = "my_prefs"; // can be changed, but it must be done so everywhere
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
Boolean yesorno = prefs.getBoolean("answer", false); // false will be returned if user didn't answer or answered no; true will be returned if user answered yes