1

ユーザーからIP、ポート、およびデバイス名の設定を取得し、オブジェクトの初期化に使用しています。ただし、設定を行っている場合、アプリを再起動するまで、これらの設定はアプリで更新されません。

これが私の設定ファイルです-

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        addPreferencesFromResource(R.layout.settings);

        SharedPreferences sp = getPreferenceScreen().getSharedPreferences();
        EditTextPreference editTextPrefLAN = (EditTextPreference) findPreference("prefABCLan");
        editTextPrefLAN
                .setSummary(sp.getString("prefABCLan", "Set your LAN IP"));





        EditTextPreference editTextPrefPort = (EditTextPreference) findPreference("prefABCPort");
        editTextPrefPort
                .setSummary(sp.getString("prefABCPort", "Set your port"));
        EditTextPreference editTextPrefDeviceName = (EditTextPreference) findPreference("prefABCDeviceName");
        editTextPrefDeviceName
                .setSummary(sp.getString("prefABCDeviceName", "Set your device name"));

        /*EditTextPreference editTextPrefScopeIP = (EditTextPreference) findPreference("prefScopeIP");
        editTextPrefScopeIP
                .setSummary(sp.getString("prefScopeIP", "Set your Scope IP"));
        EditTextPreference editTextPrefScopeLogin = (EditTextPreference) findPreference("prefScopeLogin");

*/


    }

    protected void onResume() {
        super.onResume();
        getPreferenceScreen().getSharedPreferences()
                .registerOnSharedPreferenceChangeListener(this);
    }

    protected void onStop() {
        super.onStop();
        getPreferenceScreen().getSharedPreferences()
                .registerOnSharedPreferenceChangeListener(this);
    }

    protected void onPause() {
        super.onPause();
        getPreferenceScreen().getSharedPreferences()
                .unregisterOnSharedPreferenceChangeListener(this);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.actionbar, menu);

        return true;
    }

    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
                                          String key) {
        Preference pref = findPreference(key);
        if (pref instanceof EditTextPreference) {
            EditTextPreference etp = (EditTextPreference) pref;
            pref.setSummary(etp.getText());
        }
    }

私のコードで何かする必要がありますか?

4

1 に答える 1