アプリに、アプリをセットアップするための PreferencesScreen を表示するアクティビティが必要です。この画面は、インストール後に一度だけ表示されます。どうすればよいですか?
私はsharedprefsで処理できることを知っていますが、どうすればよいですか?
よろしくカイ
アプリに、アプリをセットアップするための PreferencesScreen を表示するアクティビティが必要です。この画面は、インストール後に一度だけ表示されます。どうすればよいですか?
私はsharedprefsで処理できることを知っていますが、どうすればよいですか?
よろしくカイ
アプリが実行されたときに最初に表示されるメインのアクティビティがあると思います。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 設定エディターをロードするもう 1 つのアクティビティです。これがあなたを助けることを願っています。
編集: 完全を期すために、設定を管理するアクティビティも示します。
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
最初の起動ステータスをチェックするブール変数を共有設定に追加できます。最初の起動では、変数を 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
}
}