2013-03-19 5 views
2

Я хочу, чтобы в моем приложении была активность, которая показывает PreferencesScreen для настройки приложения. Этот экран должен отображаться только один раз после установки, как я могу это сделать?Показать настройки и иметь в виду при первом запуске приложения

Я знаю, что могу работать с sharedprefs, но как?

рассматривает кай

+0

у вас есть код? – Raynold

ответ

3

Я думаю, что у вас есть основное действие, которое отображается первым, когда ваше приложение выполнено. Вы можете ввести onCreate() очень простой код для загрузки активности предпочтений, только если вы впервые запускаете приложение. Как это:

import android.content.SharedPreferences; 
import android.app.Activity; 
import android.os.Bundle; 

public class ActivityMain extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // get shared preferences 
     SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

     // first time run? 
     if (pref.getBoolean("firstTimeRun", true)) { 

      // start the preferences activity 
      startActivity(new Intent(getBaseContext(), ActivityEditPreferences.class)); 

      //get the preferences editor 
      SharedPreferences.Editor editor = pref.edit(); 

      // avoid for next run 
      editor.putBoolean("firstTimeRun", false); 
      editor.commit(); 
     } 
    } 
} 

ActivityEditPreferences это другая деятельность, которая загружает по умолчанию редактор, предпочтение Android. Надеюсь, это может вам помочь.

EDIT: Для полноты я покажу вам также деятельность, которая управляет предпочтения:

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.Preference; 
import android.preference.PreferenceActivity; 
import android.preference.Preference.OnPreferenceClickListener; 
import android.widget.Toast; 

public class ActivityEditPreferences extends PreferenceActivity { 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       addPreferencesFromResource(R.xml.preferences); 
... 

Вы можете получить полный пример здесь: http://www.kaloer.com/android-preferences

И не забудьте посмотреть официальная ссылка: http://developer.android.com/reference/android/preference/PreferenceActivity.html

+0

спасибо! это именно то, что я ищу! – kai

+0

добро пожаловать! –

+0

Что такое getSetting()? Я также могу использовать pref.getBoolen(), правильно? – kai

0

Вы можете добавить логическую переменную в общие префов, который проверяет первый статус запуска. При первом запуске установите переменную в false. В последующих запусках вы можете проверить статус переменной, чтобы проверить, запускается ли этот запуск.

public void OnCreate(Bundle savedInstance) 
{ 
    // your other code 

    SharedPreferences sharedPrefs=getSharedPreferences("MyAppPrefs",0); 
    // The default value is true as the preference does not exist yet 
    boolean isFirstLaunch=sharedPrefs.getBoolean("firstLaunch",true); 
    if(isFirstLaunch) 
    { 
     // An editor so you can write the preference 
     SharedPrefrences.Editor editor=sharedPrefs.edit(); 
     // subsequent launches will get this value as false 
     editor.putBoolean("firstLaunch",false); 
     editor.commit(); 
    } 
    else 
    { 
     // Do other work if this is not the first launch 
    } 

} 
+0

Благодарим вас за быстрый ответ. должен ли я помещать этот код в действие, которое получает другие пользовательские настройки или в заставке? – kai

+0

Это зависит от вас. Если у вас есть активность, которая извлекает другую информацию, как вы упомянули, тогда этот код может быть добавлен к этому действию. – sandyiscool

+0

ОК, спасибо за помощь. – kai

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