以下のコードは、私のWindows phoneアプリ用に書いた設定クラスです。非常に使いやすいです:設定を作成するアンドロイドプロジェクト全体で使用できるクラス
using System;
using System.IO.IsolatedStorage;
using System.Diagnostics;
namespace myAppName
{
public class AppSettings
{
// Our isolated storage settings
IsolatedStorageSettings settings;
// The isolated storage key names of our settings
const string InstalledonSettingKeyName = "InstalledonSetting";
const string SeenTutorialSettingKeyName = "SeenTutorialSetting";
const string FontSizeSettingKeyName = "FontSizeSetting";
const string FontTypeSettingKeyName = "FontTypeSetting";
// The default value of our settings
const long InstalledonSettingDefault = 0;
const bool SeenTutorialSettingDefault = false;
const int FontSizeSettingDefault = 30;
const string FontTypeSettingDefault = "";
/// <summary>
/// Constructor that gets the application settings.
/// </summary>
public AppSettings()
{
try
{
// Get the settings for this application.
settings = IsolatedStorageSettings.ApplicationSettings;
}
catch (Exception e)
{
Debug.WriteLine("Exception while using IsolatedStorageSettings: " + e.ToString());
}
}
/// <summary>
/// Update a setting value for our application. If the setting does not
/// exist, then add the setting.
/// </summary>
/// <param name="Key"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool AddOrUpdateValue(string Key, Object value)
{
bool valueChanged = false;
// If the key exists
if (settings.Contains(Key))
{
// If the value has changed
if (settings[Key] != value)
{
// Store the new value
settings[Key] = value;
valueChanged = true;
}
}
// Otherwise create the key.
else
{
settings.Add(Key, value);
valueChanged = true;
}
return valueChanged;
}
/// <summary>
/// Get the current value of the setting, or if it is not found, set the
/// setting to the default setting.
/// </summary>
/// <typeparam name="valueType"></typeparam>
/// <param name="Key"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public valueType GetValueOrDefault<valueType>(string Key, valueType defaultValue)
{
valueType value;
// If the key exists, retrieve the value.
if (settings.Contains(Key))
{
value = (valueType)settings[Key];
}
// Otherwise, use the default value.
else
{
value = defaultValue;
}
return value;
}
/// <summary>
/// Save the settings.
/// </summary>
public void Save()
{
settings.Save();
}
public long InstalledonSetting
{
get
{
return GetValueOrDefault<long>(InstalledonSettingKeyName, InstalledonSettingDefault);
}
set
{
if (AddOrUpdateValue(InstalledonSettingKeyName, value))
{
Save();
}
}
}
public int FontSizeSetting
{
get
{
return GetValueOrDefault<int>(FontSizeSettingKeyName, FontSizeSettingDefault);
}
set
{
if (AddOrUpdateValue(FontSizeSettingKeyName, value))
{
Save();
}
}
}
public string FontTypeSetting
{
get
{
return GetValueOrDefault<string>(FontTypeSettingKeyName, FontTypeSettingDefault);
}
set
{
if (AddOrUpdateValue(FontTypeSettingKeyName, value))
{
Save();
}
}
}
public bool SeenTutorialSetting
{
get
{
return GetValueOrDefault<bool>(SeenTutorialSettingKeyName, SeenTutorialSettingDefault);
}
set
{
if (AddOrUpdateValue(SeenTutorialSettingKeyName, value))
{
Save();
}
}
}
}
}
今、このクラスを使用すると、別のクラスに
はかなり簡単です。今、この
namespace myAppName
{
public partial class MyActivity : PhoneApplicationPage
{
private AppSettings settings = new AppSettings();
public MyActivity()
{
InitializeComponent();
if (!settings.SeenTutorialSetting) ShowTutorial();
}
}
私のように私はAndroidのJavaクラスで同じことをすることができますか:
package com.example.myappname;
public class AppSettings{
String InstalledonSettingKeyName = "InstalledonSetting";
String SeenTutorialSettingKeyName = "SeenTutorialSetting";
String FontSizeSettingKeyName = "FontSizeSetting";
String FontTypeSettingKeyName = "FontTypeSetting";
// The default value of our settings
ong InstalledonSettingDefault = 0;
bool SeenTutorialSettingDefault = false;
int FontSizeSettingDefault = 30;
String FontTypeSettingDefault = "";
public AppSettings(){}
私はこれやって好まない:
if (!PreferenceManager.getDefaultSharedPreferences(this).getBoolean("myapp_finished_loading", false))
{
}
かさえ、この:
SharedPreferences vSettings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
long used_time_l = System.currentTimeMillis() - vSettings.getLong("myapp_first_data", 0);
限り継承は、AndroidのJavaクラスに懸念しているすべてのヘルプははるかに高く評価されるだろうさ。あなたがdownvoteする必要がある場合私に理由を教えてください。
**を使用することができます** Bundles **、** Parcelables **、** SharedPreferences **は、**フラグメント**と**アクティビティ**の間でデータをどのように共有するのか、常に中心的な役割を果たします。試してみてください** SharedPreferencesが**可変ストレージ**のコンセプトを提供しようとしているので**これをやってみましょう。また、生のファイルI/Oコードを書くのに費やす時間を節約しながら – ShayHaned
これをあなたのサポートに感謝します – Oyonde