共有設定をアクティビティにリンクすることができます:
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) finish();
SharedPreferences pref = getSharedPreferences("Widget"+appWidgetId, 0);
プリファレンスアプリケーションの構成ダイアログで、次の方法で表示されたプリファレンスにアクセスできます。
getPreferenceScreen().getSharedPreferences();
これらの設定はウィジェットにリンクされていませんが、グローバルです。プリファレンスアクティビティに表示されるプリファレンスをウィジェットに合わせたプリファレンスに変更するにはどうすればよいですか?
共有設定ファイルを手動で設定しようとしました:
PreferenceManager localPrefs = getPreferenceManager();
localPrefs.setSharedPreferencesName("GITC_Prefs");
これにより、を介して共有設定にアクセスしようとすると、nullポインタ例外が発生します
PreferenceActivity.getPreferenceScreen();