2

アプリに、アプリをセットアップするための PreferencesScreen を表示するアクティビティが必要です。この画面は、インストール後に一度だけ表示されます。どうすればよいですか?

私はsharedprefsで処理できることを知っていますが、どうすればよいですか?

よろしくカイ

4

2 に答える 2

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 設定エディターをロードするもう 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

于 2013-03-19T08:35:18.380 に答える
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
    }

}
于 2013-03-19T08:32:14.100 に答える