开发者

Android SharedPreferences design model

开发者 https://www.devze.com 2023-04-07 16:55 出处:网络
I have these two classes. SettingsManager extends another class and stores the data and also gets the context from the Activity as parameter. However this doesn\'t seem to work and I get empty EditTex

I have these two classes. SettingsManager extends another class and stores the data and also gets the context from the Activity as parameter. However this doesn't seem to work and I get empty EditText fields. Could you please suggest anything to fix this?

public class SettingsActivity extends Activity {
    private EditText _userSoftSerialNumberEditText;
    private EditText _databaseServerEditText;
    private EditText _databaseNameEditText;
    private EditText _userApplicationEditText;
    private EditText _databaseUserNameEditText;
    private EditText _databasePasswordEditText;
    private SettingsManager _settingsManager;
    private Context _context;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settingsview_layout);
        _context = this;
        _settingsManager = new SettingsManager(_context);
        _settingsManager.loadSettings();

    // Setting the values in the EditText fields in the settingsview_layout.xml
    _userSoftSerialNumberEditText = (EditText) findViewById(R.id.userSoftSerialNumberEditText);
    _userSoftSerialNumberEditText.setText(_settingsManager.getUserSoftSerialNumber());
    _databaseServerEditText = (EditText) findViewById(R.id.databaseServerEditText);
    _databaseServerEditText.setText(_settingsManager.getDatabaseServer());
    _databaseNameEditText = (EditText) findViewById(R.id.databaseNameEditText);
    _databaseNameEditText.setText(_settingsManager.getDatabaseName());
    _userApplicationEditText = (EditText) findViewById(R.id.userApplicationEditText);
    _userApplicationEditText.setText(_settingsManager.getUserApplication());
    _databaseUserNameEditText = (EditText) findViewById(R.id.databaseUserNameEditText);
    _databaseUserNameEditText.setText(_settingsManager.getDatabaseUserName());
    _databasePasswordEditText = (EditText) findViewById(R.id.databasePasswordEditText);
    _databasePasswordEditText.setText(_settingsManager.getDatabasePassword());

    // Creating a "Save Settings" button 
    Button _saveSettingsButton = (Button) findViewById(R.id.saveSettingsButton);

    // Implementing the "Save Settings" button click
    _saveSettingsButton.setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
            _开发者_开发百科settingsManager.saveSettings();
        }
    });
}
}
public class SettingsManager extends ConnectionInfo {

private SharedPreferences _settings;
private Context _context;

public SettingsManager (Context context) {
    _context = context;
    _settings = PreferenceManager.getDefaultSharedPreferences(context);
}

public void saveSettings() {
    SharedPreferences.Editor _editor = _settings.edit();
    _editor.putString("userSoftSerialNumber", _userSoftSerialNumber);
    _editor.putString("databaseUserName", _databaseUserName);
    _editor.putString("databasePassword", _databasePassword);
    _editor.putString("databaseServer", _databaseServer);
    _editor.putString("databaseName", _databaseName);
    _editor.putString("userApplication", _userApplication);
    _editor.commit(); // Never forget the commit()!!!!      
}

public void loadSettings() {
    _userSoftSerialNumber = _settings.getString("userSoftSerialNumber", "");
    _databaseUserName = _settings.getString("databaseUserName", "");
    _databasePassword = _settings.getString("databasePassword", "");
    _databaseServer = _settings.getString("databaseServer", "");
    _databaseName = _settings.getString("databaseName", "");
    _userApplication = _settings.getString("userApplication", "");  
}
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号