2016-04-19 7 views
0

RecyclerViewにボタンをクリックしてビューを追加しています。これらのビューをSharedPrefrencesに保存したいのですが、これはどうすればjsonが必要ですか? ?ここで Android:RecyclerViewでSharedPrefsで追加されたビューを保存する

アダプタです:

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(); 
     } 
    } 
} 

私はあなたがSharedPreferenceの「ストアビューを傾けるこのadapter.addItem("something");

答えて

1

のような活動からの眺めを追加している、しかし、あなたはの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, "")); 
+0

に格納された値を設定することができます私はのTextViewを保存することができますが、ビューが格納されていない場合は、すべて保存する必要が –

+0

を格納するための一切のTextViewは存在しませんすべてのビューを再作成します。 – MrRobot9

+0

すべてのビューを再作成することはどういう意味ですか? –