Android 尝试共享首选项,但出现错误

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;

我试图让共享的首选项从

我从那个线程添加了代码,根据我的需要对其进行了修改,在我编译之前,它在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 sharedReferences savedFields之后没有分号

  • 您没有
    savednotes
    的声明。也许应该改为保存字段

  • java代码放在.kt文件中。idk这怎么会发生


  • 我能做的前两件事。第二,关于你的第三点,我应该把代码放在一个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个未解决的引用错误。