title: How to use shared preferences in RecyclerView.Adapter?
body: <p>How to use shared preferences in  RecyclerView.Adapter..? i have used shared preference value in RecyclerView.Adapter..but nothing is saving in shared preference..where exactly i have to use shared preference ..?in RecyclerView.Adapter or activity..?</p>
  
  <pre><code>public class CardAdapter extends RecyclerView.Adapter&lt;CardAdapter.ViewHolder&gt; {
  
      private ImageLoader imageLoader;
      private Context context;
      private String gd;
  
      public static final String SHARED_PREF_NAME = "myloginapp";
      //We will use this to store the boolean in sharedpreference to track user is loggedin or not
      public static final String LOGGEDIN_SHARED_PREF = "loggedin";
      public static final String GROUPSNAME_SHARED_PREF = "groupname";
  
      public CardAdapter(Context context) {
          this.context = context;
      }
  
          //List of superHeroes
          List&lt;Group&gt; groups;
  
          public CardAdapter(List &lt; Group &gt; groups, Context context) {
              super();
              //Getting all the superheroes
              this.groups = groups;
              this.context = context;
          }
  
          @Override
          public ViewHolder onCreateViewHolder (ViewGroup parent,int viewType){
              View v = LayoutInflater.from(parent.getContext())
                      .inflate(R.layout.groups_list, parent, false);
              ViewHolder viewHolder = new ViewHolder(v);
              return viewHolder;
          }
  
          @Override
          public void onBindViewHolder (ViewHolder holder,int position){
  
              Group group1 = groups.get(position);
  
              imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
              imageLoader.get(group1.getPic(), ImageLoader.getImageListener(holder.imageView, R.drawable.ic_launcher, android.R.drawable.ic_dialog_alert));
  
              holder.imageView.setImageUrl(group1.getPic(), imageLoader);
              holder.groupname.setText(group1.getGname());//i want to store this value in shared preference..
              holder.groupinfo.setText(group1.getGinfo());
              gd = holder.groupname.getText().toString();//variable gd is storing any value.
              holder.add.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      Intent intent = new Intent(context, Viewgroup1.class);
                      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                      context.startActivity(intent);
                  }
              });
  
          }
  
          @Override
          public int getItemCount () {
              return groups.size();
          }
  
          class ViewHolder extends RecyclerView.ViewHolder {
              public NetworkImageView imageView;
              public TextView groupname;
              public TextView groupinfo;
              public Button add;
  
  
              public ViewHolder(View itemView) {
                  super(itemView);
                  imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero);
                  groupname = (TextView) itemView.findViewById(R.id.textViewName);
                  groupinfo = (TextView) itemView.findViewById(R.id.textViewRank);
                  add = (Button) itemView.findViewById(R.id.button7);
                  //String gd = holder.groupname.getText().toString();
  
                  SharedPreferences sharedPreferences1 = context.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
  
                  //Creating editor to store values to shared preferences
                  SharedPreferences.Editor editor = sharedPreferences1.edit();
  
                  //Adding values to editor
                  editor.putBoolean(LOGGEDIN_SHARED_PREF, true);
                  editor.putString(GROUPSNAME_SHARED_PREF, gd);
  
              }
          }
      } 
  </code></pre>
  
  <p><strong>Viewgroup.java</strong></p>
  
  <pre><code>public class Viewgroup extends AppCompatActivity {
  
      //Creating a List of superheroes
      private List&lt;Group&gt; listSuperHeroes;
      private String vault;
      //Creating Views
      private RecyclerView recyclerView;
      private RecyclerView.LayoutManager layoutManager;
      private RecyclerView.Adapter adapter;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.recycle);
  
          //Initializing Views
          recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
          recyclerView.setHasFixedSize(true);
          layoutManager = new LinearLayoutManager(this);
          recyclerView.setLayoutManager(layoutManager);
  
          //Initializing our superheroes list
          listSuperHeroes = new ArrayList&lt;&gt;();
          SharedPreferences sharedPreferences = getSharedPreferences(ProfileLogin.SHARED_PREF_NAME, MODE_PRIVATE);
          vault = sharedPreferences.getString(ProfileLogin.EMAIL_SHARED_PREF,"Not Available");
          //Calling method to get data
          getData();
      }
  
      //This method will get data from the web api
      private void getData(){
          //Showing a progress dialog
          final ProgressDialog loading = ProgressDialog.show(this,"Loading Data", "Please wait...",false,false);
  
          //Creating a json array request
          JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Config.DATA_URL+vault,
                  new Response.Listener&lt;JSONArray&gt;() {
                      @Override
                      public void onResponse(JSONArray response) {
                          //Dismissing progress dialog
                          loading.dismiss();
  
                          //calling method to parse json array
                          parseData(response);
                      }
                  },
                  new Response.ErrorListener() {
                      @Override
                      public void onErrorResponse(VolleyError error) {
  
                      }
                  });
  
          //Creating request queue
          RequestQueue requestQueue = Volley.newRequestQueue(this);
  
          //Adding request to the queue
          requestQueue.add(jsonArrayRequest);
      }
  
      //This method will parse json data
      private void parseData(JSONArray array){
          for(int i = 0; i&lt;array.length(); i++) {
              Group group1 = new Group();
              JSONObject json = null;
              try {
                  json = array.getJSONObject(i);
                  group1.setPic(json.getString(Config.TAG_IMAGE_URL));
                  group1.setGname(json.getString(Config.TAG_NAME));
                  group1.setGinfo(json.getString(Config.TAG_INFO));
  
              } catch (JSONException e) {
                  e.printStackTrace();
              }
              listSuperHeroes.add(group1);
          }
  
          //Finally initializing our adapter
          adapter = new CardAdapter(listSuperHeroes, this);
  
          //Adding adapter to recyclerview
          recyclerView.setAdapter(adapter);
  
  
         /* recyclerView.setOnTouchListener(new View.OnTouchListener() {
              @Override
              public boolean onTouch(View v, MotionEvent event) {
                  final Button add = (Button)  v.findViewById(R.id.button7);
                  final TextView txtStatusChange = (TextView) v.findViewById(R.id.textViewName);
                  //final TextView txtStatusChange1 = (TextView) v.findViewById(R.id.textView33);
                  add.setOnClickListener(new View.OnClickListener() {
                      @Override
                      public void onClick(View v) {
  
                          Intent intent = new Intent(Viewgroup.this, Viewgroup1.class);
                          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                          startActivity(intent);
                          // Log.e(TAG_IMAGE_URL, "hello text " + txtStatusChange.getText().toString() + " TAG " + txtStatusChange.getTag().toString());
                          Toast.makeText(Viewgroup.this, txtStatusChange.getText().toString(), Toast.LENGTH_SHORT).show();
                      }
                  });
                  return false;
              }
          });*/
      }
  }
  </code></pre>