gpt4 book ai didi

android - 共享首选项未保存

转载 作者:太空宇宙 更新时间:2023-11-03 12:01:26 29 4
gpt4 key购买 nike

在我的 Activity 中,我根据存储的首选项更新用户界面。 updateUI代码如下:

private void updateUI()
{
//preferences = getSharedPreferences(Select.PREF_FILE_NAME, MODE_PRIVATE);
preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

toggle = (Button)findViewById(R.id.toggleButton);
incommingEdit = (Button)findViewById(R.id.IncommingEditButton);
outgoingEdit = (Button)findViewById(R.id.outgoingEditButton);
missedEdit = (Button)findViewById(R.id.missedEditButton);
save = (Button)findViewById(R.id.saveButton);
cancel = (Button)findViewById(R.id.cancelButton);
incommingCheck = (CheckBox)findViewById(R.id.incommingCheck);
outgoingCheck = (CheckBox)findViewById(R.id.outgoingCheck);
missedCheck = (CheckBox)findViewById(R.id.missedCheck);
incommingTextView = (TextView) findViewById(R.id.incommingTextView);
outgoingTextView = (TextView) findViewById(R.id.outgoingTextView);
missedTextView = (TextView) findViewById(R.id.missedTextView);

//Disable all the edit buttons until their checkboxes are checked.
incommingEdit.setEnabled(false);
outgoingEdit.setEnabled(false);
missedEdit.setEnabled(false);

//Display the messages in the text views.
incommingTextView.setText(preferences.getString("incommingMsgPhone", "Currently there are no messages saved."));
outgoingTextView.setText(preferences.getString("outgoingMsgPhone", "Currently there are no messages saved."));
missedTextView.setText(preferences.getString("missedMsgPhone", "Currently there are no messages saved."));

//Check the check boxes.
if(preferences.getInt("incommingPhone", 0) == Calls.INCOMING_TYPE)
{
incommingCheck.setChecked(true);
incommingEdit.setEnabled(true);
}

if(preferences.getInt("outgoingPhone", 0) == Calls.OUTGOING_TYPE)
{
outgoingCheck.setChecked(true);
outgoingEdit.setEnabled(true);
}

if(preferences.getInt("missedPhone", 0) == Calls.MISSED_TYPE)
{
missedCheck.setChecked(true);
missedEdit.setEnabled(true);
}

//Check if the application is on or off and set the text of the button.
//preferences = getSharedPreferences(Select.PREF_FILE_NAME, MODE_PRIVATE);
boolean on = preferences.getBoolean("isOn", false);
if(!on)
toggle.setText("Turn On");
else
toggle.setText("Turn off");
}

以下是我保存所有这些首选项的方式:

save.setOnClickListener(new OnClickListener() 
{

@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
//Save all in the preference file and exit.
//preferences = getSharedPreferences(Select.PREF_FILE_NAME, MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putInt("incommingPhone", incomming);
editor.putInt("outgoingPhone", outgoing);
editor.putInt("missedPhone", missed);

editor.putString("incommingMsgPhone", incommingMsg);
editor.putString("outgoingMsgPhone", outgoingMsg);
editor.putString("missedMsgPhone", missedMsg);

editor.commit();
finish();
}
});

我的 UI 在我第二次运行我的应用程序时正确更新,但大约第三或第四次我获得默认首选项值。我什至尝试使用 getdefaultpreferences 而不是 getsharedpreferences,但没有成功。

最佳答案

我在 getStringSet 上遇到了类似的问题,文档在那里提供了帮助

Note that you must not modify the set instance returned by this call. The consistency of the stored data is not guaranteed if you do, nor is your ability to modify the instance at all.

关于android - 共享首选项未保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407854/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com