2017-01-08 2 views
0

В настоящее время я программирую игру и перед тем, как кнопка «начать игру» выражает отдельное диалоговое окно, в котором объясняется игра. Я все еще могу получить его сам! Но я бы хотел, чтобы этот диалог на игрока показывался только один раз, а потом никогда больше! Кто-нибудь знает подход?Android Studio показывает диалог после запуска игры

+0

Вы используете какое-либо запоминающее устройство для сохранения данных игрока (баллы, баллы и т. Д.)? –

+0

Да, у меня есть сервер, на котором хранится оценка игрока и самого имени игры. – Jordie

+0

Итак, вы можете сохранить там логическое значение, например, «isFirstTime», которое хранит true, если это первый игрок. И затем храните ложь, а это не так. Или вы можете использовать SharedPreferences, так как @Isaac sugested в ответе ниже. –

ответ

0

С помощью кода, предоставленной @Isaac Payne, я модифицирующих код Dialog.

public class MyApp extends Application { 

    SharedPreferences mPrefs; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 

     Context mContext = this.getApplicationContext(); 
       //0 = mode private. only this app can read these preferences 
     mPrefs = mContext.getSharedPreferences("myAppPrefs", 0); 


     // the rest of your app initialization code goes here 
     if(getFirstRun()) { 

     final Dialog dialog = new Dialog(your_activity_context.this); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //if not title window required. 
     dialog.setContentView(your_layout_to_show_as_window); 

     // initialize your views from the layout    
     setRan(); 
     dialog.show(); 
     } 
    } 

    public boolean getFirstRun() { 
     return mPrefs.getBoolean("firstRun", true); 
    } 

    public void setRan() { 
     SharedPreferences.Editor edit = mPrefs.edit(); 
     edit.putBoolean("firstRun", false); 
     edit.commit(); 
    } 
} 
+0

Большое вам спасибо! Но метод setRan никогда не используется, и когда я запускаю приложение, второй раз это Диалог там. – Jordie

+0

Да, положите 'setRan' после' dialog.show(); '. Это будет работать. Должен повышать и принимать, если помог ... – W4R10CK

+0

см. Мой отредактированный код. @Jordie – W4R10CK

0

Посмотрите SharedPreferences

: например

public class MyApp extends Application { 

    SharedPreferences mPrefs; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 

     Context mContext = this.getApplicationContext(); 
       //0 = mode private. only this app can read these preferences 
     mPrefs = mContext.getSharedPreferences("myAppPrefs", 0); 


     // the rest of your app initialization code goes here 
     if(getFirstRun()) { 
      //Show dialog 
     } 
    } 

    public boolean getFirstRun() { 
     return mPrefs.getBoolean("firstRun", true); 
    } 

    public void setRan() { 
     SharedPreferences.Editor edit = mPrefs.edit(); 
     edit.putBoolean("firstRun", false); 
     edit.commit(); 
    } 
} 
+0

Я имею в виду, что я нажимаю кнопку «Начать игру», а затем появляется диалоговое XML-файл, где я объясняю игру. И это было – Jordie

Смежные вопросы