【问题标题】:attempt at shared preferences but getting errors尝试共享偏好但出现错误
【发布时间】:2019-05-18 07:52:27
【问题描述】:

我正在尝试从 here 获取共享首选项

我从那个线程添加了代码,使其适应我的需要,在我编译之前它在 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();
        }
    }
}

我希望它不会抛出任何错误,但我查阅了相关的参考资料,并没有看到很多错误。 Here 是安卓工作室的错误截图。

【问题讨论】:

    标签: android kotlin sharedpreferences


    【解决方案1】:

    所以,我在这里看到了 3 个关键问题:

    1. private SharedPreferences savedFields 后面没有分号

    2. 您没有声明savednotes。也许应该改为 saveFields?

    3. 您的 java 代码放在 .kt 文件中。不知道怎么会这样

    【讨论】:

    • 前两个我可以解决。其次,关于你的第三点,我应该把代码放在一个java文件中,然后从MainActivity.kt调用它吗?
    • 我不明白你在做什么。如果你使用 java - 它应该在 .java 文件中,kotlin caode - 在 .kt 文件中。如果您想使用 java - 创建 ChrStats.java 文件并将您的代码移动到其中。如果你想使用 kotlin - 用 kotlin 重写代码。如果您已经有一些其他代码应该使用此活动 - 给我们更多信息
    • github.com/brobostigon/TW01/blob/master/app/src/main/java/com/… 我为代码创建了一个单独的 java 文件,它导致以下错误,“/home/ptaylor/TW01/app/src/main/java/com/taylorworld/tw01 /chrStats.java:71:错误:';'预计 }"
    • 我让 android studio 完成了艰苦的工作,并将其从 java 转换为 kotlin,github.com/brobostigon/TW01/blob/master/app/src/main/java/com/…,但是当我尝试编译它时,它会导致 32 个未解决的引用错误。
    猜你喜欢
    • 2019-03-18
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 2014-07-29
    相关资源
    最近更新 更多