0

私は、preferenceActivity を拡張するアクティビティを作成しました。そのアクティビティでは、アイテムのリストを表示するカスタム ダイアログを開きました。listview のアイテムをクリックするたびに、ダイアログが閉じました。その時点で、選択したアイテムを SharedPreference に保存して、そのアイテムをアプリケーション全体で取得したいと考えています。

しかし、私の問題は、選択したアイテムを SharedPreference に保存するにはどうすればよいですか??

次回アプリケーションを開くと、以前に選択したアイテムを取得できるはずです。

PreferenceActivity のコードは次のとおりです。

public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener 
{
    SharedPreferences myprefs;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.settings);
        addPreferencesFromResource(R.xml.prefs);

        PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);

        Preference prefereces=findPreference("alertdialog_Font_Style");
        prefereces.setOnPreferenceClickListener(new OnPreferenceClickListener() {

            public boolean onPreferenceClick(Preference preference) {
                // TODO Auto-generated method stub
                DialogFontStyle objdialog = new DialogFontStyle(SettingsActivity.this,R.style.CustomDialogTheme);
                objdialog.show();
                return true;
            }


        });
    }

ダイアログのクラスは次のとおりです。

public class DialogFontStyle extends Dialog {

    public DialogFontStyle(Context context, int theme) {
        super(context, theme);
        // TODO Auto-generated constructor stub
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.dialog_layout);

        final String[] sizeType = new String[] {"a" , "b" , "c" , "d"};       

            final ListView lst = (ListView)findViewById(android.R.id.list);

            ArrayAdapter<String> adapter = new ArrayAdapter<String> (context,android.R.layout.simple_list_item_1,sizeType);                  
         lst.setAdapter(adapter);

             lst.setOnItemClickListener(new OnItemClickListener() {
                 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                    // TODO Auto-generated method stub

                    dismiss();
                }
             });
    } 
}

sharedpreferenceにデータを保存する解決策を教えてください。ありがとう。

4

2 に答える 2

0

設定を共有するために何かを書くには、次のコードを使用します。

SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences( mContext );
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean( KEY, VALUE );
editor.commit();

mContext は、ダイアログではなく、アクティビティまたはアプリケーションのコンテキストである必要があります。または、ダイアログがアクティビティ内にある場合は、SettingsActivity.thisクラス メンバー mContext を使用または作成し、initi をオンにします。onCreate()

于 2012-11-25T12:38:27.073 に答える
0

いくつかのオプションがあります:

以前に保存されたアイテムを取得するには、SharedPreferences オブジェクトを再度取得し、目的の get..() メソッドを呼び出して以前に保存されたキーを取得するだけです。

于 2012-11-25T12:37:58.973 に答える