Общие предпочтения не сохраняются? - PullRequest
1 голос
/ 20 февраля 2020

Когда я пытаюсь сохранить переменную в общих настройках, затем вызвать ее в редактируемом тексте, она не сохраняется? Я искал несколько часов, но ничего не могу найти на нем. Я знаю, что sharedPrefferences действует как словарь, но кроме этого я не понимаю, почему это не работает: (

package com.example.gatorblocks;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.wearable.activity.WearableActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class block1Settings extends WearableActivity{

    private TextView mTextView;

    Context context = this;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_block1_settings);
        configureBackButton();
        configureColor();

        Button addTextButton = (Button) findViewById(R.id.Apply);
        TextView simpleEditText =  findViewById(R.id.simpleEditText);
        SharedPreferences prefs = getSharedPreferences("classes.txt", 0);
        simpleEditText.setText(prefs.getString("classes1","1-1"));                 //set textbox to equal current class

        final EditText vEditText = (EditText) findViewById(R.id.simpleEditText);


        mTextView = (TextView) findViewById(R.id.text);

        // Enables Always-on
        setAmbientEnabled();

        addTextButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String enteredText = vEditText.getText().toString();        //sets the array value of block to the editText
                test(enteredText);

            }
        });
    }
    private void configureColor() {
        Button Block1 = (Button) findViewById(R.id.colorButton);
        Block1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(block1Settings.this, colorBlock1.class));
                overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);
            }
        });
    }

    private void configureBackButton(){
        Button backbutton = (Button) findViewById(R.id.backButton);
        backbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                startActivity(new Intent(block1Settings.this, classes.class));
                overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);
                finish();

            }
        });
    }
    public void test(String enteredText){
        SharedPreferences pref = getSharedPreferences("classes.txt", 0);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString("class1", enteredText);
        editor.apply();
    }

}

1 Ответ

1 голос
/ 20 февраля 2020

Как вы получили данные из SharedPreferences, которые не сохранены? Вы сохранили данные с помощью ключа class1 и хотите получить их по classes1 , что неверно. Вы должны использовать тот же ключ. Попробуйте использовать

SharedPreferences prefs = getSharedPreferences("classes.txt", 0);
simpleEditText.setText(prefs.getString("class1","1-1"));
...