我创建了一个活动,在其中实施了回收站视图适配器。我还创建了第二个活动,该活动应在SharedPreferences
中添加一个值。之后,我想基于该SharedPreferences
的值更改textView的文本。但是,当我尝试设置它的文本无效时,它甚至都没有添加默认值SharedPreferences
。
活动内保存点击数据的代码:
public void Done(View view){
SharedPreferences mPreferences =
mContext.getSharedPreferences("Checker",MODE_PRIVATE);
SharedPreferences.Editor mEditor = mPreferences.edit();
mEditor.putString("Day1", "complete");
mEditor.apply();
//mRecyclerView.setAdapter(fitnessAdapter);
fitnessAdapter.notifyDataSetChanged();
回收者视图适配器内部的代码:(仅是我使用代码的ViewHolder)
public class MainViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView segment;
OnNoteListener mOnNoteListener;
private MainViewHolder( View itemView, OnNoteListener onNoteListener, Context context) {
super(itemView);
segment = itemView.findViewById(R.id.segment_shredmas);
SharedPreferences mPreferences = context.getSharedPreferences("Checker",MODE_PRIVATE);
String daySelector = mPreferences.getString("ShredmasD1","Nothing");
segment.setText("Day "+ daySelector);
this.mOnNoteListener = onNoteListener;
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
mOnNoteListener.onNoteClick(getAdapterPosition());
}
}
PS:我尝试了SharedPreferences
的两种方式。但是由于旧的是最后一个,所以我留下了这样的代码
您使用获取和设置sharef首选项值的键是不同的,因此您在Done
方法中更改了错误的文本。
mEditor.putString("Day1", "complete");
String daySelector = mPreferences.getString("ShredmasD1","Nothing");
使用mEditor.commit()
代替mEditor.apply()
保存您的SharedPreferences。