我通过单击按钮将视图添加到RecyclerView中,我希望这些视图能够保存,最好保存在SharedPrefrences中。我们如何做到这一点,是否需要json?
这是适配器:
public class SubjectsAdapter extends RecyclerView.Adapter<SubjectsAdapter.ViewHolder> {
public List<String> items = new ArrayList<>();
public Activity mcontext;
public SubjectsAdapter(Activity context) {
this.mcontext=context;
}
public void addItem(String name) {
items.add(name);
notifyItemInserted(items.size() - 1);
}
public void removeItem(int position) {
items.remove(position);
notifyItemRemoved(position);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.grid_item_button, parent, false);
view.requestFocus();
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return items.size();
}
static int i = 100;
static int h = 1000;
public EditText EditName;
class ViewHolder extends RecyclerView.ViewHolder{
public Button GridButton;
private TextView ClassName;
public SharedPreferences prefs;
public ViewHolder(View itemView) {
super(itemView);
GridButton = (Button) itemView.findViewById(R.id.grid_button);
EditName = (EditText) itemView.findViewById(R.id.editName);
ClassName = (TextView) itemView.findViewById(R.id.ClassName);
prefs = mcontext.getPreferences(Context.MODE_PRIVATE);
GridButton.setId(++i);
GridButton.setText(prefs.getString("key", i + ""));
EditName.requestFocus();
}
}
}
我正在添加活动中的视图,如adapter.addItem("something");
您不能在SharedPreference中存储视图,但可以存储文本视图的值。
pref = getSharedPreferences(prefName, Context.MODE_PRIVATE);
SharedPreferences.Editor ed;
ed = pref.edit();
ed.putString(prefKey2, textView.getText().toString()).commit();
然后您可以将存储的值设置为文本视图
textView.setText(pref.getString(prefKey2, ""));