Android 尝试共享首选项,但出现错误
我试图让共享的首选项从 我从那个线程添加了代码,根据我的需要对其进行了修改,在我编译之前,它在android studio中不会显示任何错误Android 尝试共享首选项,但出现错误,android,kotlin,sharedpreferences,Android,Kotlin,Sharedpreferences,我试图让共享的首选项从 我从那个线程添加了代码,根据我的需要对其进行了修改,在我编译之前,它在android studio中不会显示任何错误 public class ChrStats extends Activity { private SharedPreferences savedFields private Button saveButton; private EditText editText; private EditText editText2;
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 sharedReferences savedFields之后没有分号
savednotes
的声明。也许应该改为保存字段我能做的前两件事。第二,关于你的第三点,我应该把代码放在一个java文件中,然后从MainActivity.kt调用它吗?我不明白你在做什么。如果您使用java,它应该在.java文件中,kotlin caode-in.kt文件中。如果您想使用java,请创建chrsts.java文件并在其中移动代码。如果要使用kotlin,请使用kotlin重写代码。如果您已经有一些其他代码应该使用此活动,请提供更多信息。我为代码创建了一个单独的java文件,它会导致以下错误,“/home/ptaylor/TW01/app/src/main/java/com/taylorworld/TW01/chrsts.java:71:error:”;“expected}”我让androidstudio完成了这项艰巨的工作,并将其从java转换为kotlin,但是当我尝试编译它时,它会导致32个未解决的引用错误。