Android:保存使用SharedPrefs在RecyclerView中添加的视图

时间:2016-04-19 19:50:42

标签: java android

我通过点击按钮向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");

1 个答案:

答案 0 :(得分:0)

你不能&#39;在SharedPreference中存储视图,但您可以存储textview的值。

pref = getSharedPreferences(prefName, Context.MODE_PRIVATE);
SharedPreferences.Editor ed;
ed = pref.edit();
ed.putString(prefKey2, textView.getText().toString()).commit();

然后您可以将存储的值设置为textview

textView.setText(pref.getString(prefKey2, ""));