android - 尝试共享偏好但出现错误
问题描述
我试图从这里获得共享偏好
我从该线程添加了代码,使其适应我的需要,在我编译它之前,它在 android studio 中没有显示任何错误。
public class ChrStats extends Activity
{
private SharedPreferences savedFields
private Button saveButton;
private EditText editText;
private EditText editText2;
private EditText editText3;
private EditText editText4;
private EditText editText5;
private EditText editText6;
private EditText editText7;
// Add all your EditTexts...
// Upon creating your Activity, reload all the saved values.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
saveButton = (Button) findViewById (R.id.your_save_button_id);
editText = (EditText) findViewById (R.id.your_edit_text_1_id);
editText2 = (EditText) findViewById(R.id.your_edit_text_2_id);
editText3 = (EditText) findViewById(R.id.your_edit_text_3_id);
editText4 = (EditText) findViewById(R.id.your_edit_text_4_id);
editText5 = (EditText) findViewById(R.id.your_edit_text_5_id);
editText6 = (EditText) findViewById(R.id.your_edit_text_6_id);
editText7 = (EditText) findViewById(R.id.your_edit_text_7_id);
// Keep adding all your EditTexts the same way...
// "info" is just a tag name, use anything you like
savedFields = getSharedPreferences("info", MODE_PRIVATE);
// In case no value is already saved, use a Default Value
editText.setText(savednotes.getString("editText1", "Default Value 1"));
editText2.setText(savednotes.getString("editText2", "Default Value 2"));
editText3.setText(savednotes.getString("editText3", "Default Value 3"));
editText4.setText(savednotes.getString("editText4", "Default Value 4"));
editText5.setText(savednotes.getString("editText5", "Default Value 5"));
editText6.setText(savednotes.getString("editText6", "Default Value 6"));
editText7.setText(savednotes.getString("editText7", "Default Value 7"));
// Save the changes upon button click
saveButton.setOnClickListener(saveButtonListener);
}
public OnClickListener saveButtonListener = new OnClickListener () {
@Override
public void onClick(View v) {
SharedPreferences.Editor preferencesEditor = savedFields . edit ();
if (editText.getText().length() > 0) // Not empty
preferencesEditor.putString("editText", editText.getText());
if (editText2.getText().length() > 0) // Not empty
preferencesEditor.putString("editText2", editText2.getText());
if (editText3.getText().length() > 0) // Not empty
preferencesEditor.putString("editText3", editText3.getText());
if (editText4.getText().length() > 0) // Not empty
preferencesEditor.putString("editText4", editText4.getText());
if (editText5.getText().length() > 0) // Not empty
preferencesEditor.putString("editText5", editText5.getText());
if (editText6.getText().length() > 0) // Not empty
preferencesEditor.putString("editText6", editText6.getText());
if (editText7.getText().length() > 0) // Not empty
preferencesEditor.putString("editText7", editText7.getText());
// You can make a function so you woudn't have to repeat the same code for each EditText
// At the end, save (commit) all the changes
preferencesEditor.commit();
}
}
}
我希望它不会抛出任何错误,但我查阅了相关的参考资料,并没有看到很多错误。这是来自 android studio 的错误截图。
解决方案
所以,我在这里看到了 3 个关键问题:
后面没有分号
private SharedPreferences savedFields
你没有声明
savednotes
. 也许应该改为 saveFields ?您的 java 代码放在 .kt 文件中。我知道这怎么会发生
推荐阅读
- php - 表中数组的组列表
- python - NameError:未定义全局名称“FullLoader”
- python - python和FFT的相位谱
- elasticsearch - 我的应用程序的 ELK 配置使用日志存储转发到弹性搜索
- reactjs - 为什么我的减速器参数类型接受“未定义”?
- javascript - 为什么这个计算返回 -Infinity?
- mysql - 使用 qt 的 mysql 8 的身份验证问题
- flutter - 如何修复 AnimatedList 中的裁剪阴影?
- c# - 有没有办法从 ASP.NET (.NET Core) 应用程序访问/修改 Linux 机器上的文件?
- eclipse - 错误:在 Eclipse IDE 上使用 Xalan 调试 xslt 文件时出现“无法连接到套接字...”