Общие настройки не применяют данные к локальному хранилищу - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь сохранить состояние моей кнопки с помощью SharedPreferences, но это просто не сработает. Мое приложение не обнаруживает sh ничего, оно просто не сохраняет данные (состояние mButton), оно просто перезагружается после перезапуска приложения. Я пытаюсь сделать это в RecyclerVier.Adapter.

Вот мой код

package com.example.myApp;

public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ExampleViewHolder> {
private ArrayList<MyItem> mExampleList;


public static class ExampleViewHolder extends RecyclerView.ViewHolder {


    public TextView mTextView;
    private EditText topicName;
    private Button mButton;
    private int clicks = 1;
    private Context mContext;

    public ExampleViewHolder(View itemView) {


        super(itemView);


        mTextView = itemView.findViewById(R.id.tv_country);
        mContext = itemView.getContext();
        mTextView = itemView.findViewById(R.id.tv_country);
        mButton = itemView.findViewById(R.id.button3);
        SharedPreferences pref = mContext.getSharedPreferences("button", MODE_PRIVATE);
        String color = pref.getString("color", "default");


        if(color.equals("green")){
         //color was green
            mButton.setBackgroundResource(R.drawable.button_green);
        }else{
           //color was red
            mButton.setBackgroundResource(R.drawable.button_red);
        }

        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clicks++;

                if (clicks % 2 == 0) {
                    mButton.setBackgroundResource(R.drawable.button_green);

                    //save as green
                    SharedPreferences.Editor editor = mContext.getSharedPreferences("button",
                            MODE_PRIVATE).edit();
                    editor.putString("color", "green");
                    editor.apply();
                } else
                    mButton.setBackgroundResource(R.drawable.button_red);

                //save as red
                SharedPreferences.Editor editor = mContext.getSharedPreferences("button",
                        MODE_PRIVATE).edit();
                editor.putString("color", "red");
                editor.apply();
            }
        });


    }
}

public ExampleAdapter(ArrayList<MyItem> exampleList) {
    mExampleList = exampleList;


}

@Override
public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.example_item, parent, false);
    ExampleViewHolder evh = new ExampleViewHolder(v);


    return evh;
}

@Override
public void onBindViewHolder(ExampleViewHolder holder, int position) {
    MyItem currentItem = mExampleList.get(position);

    holder.mTextView.setText(currentItem.getTaskText());

}

@Override
public int getItemCount() {
    return mExampleList.size();

    }
}
...