title: Calling a method in one fragment from another
body: <p>I've been trying for a while already (as well, searching in here) for something to help me to refresh listView in my MainFragment, when a button is pressed in other fragment. Could sommeone explain me how to make it work? </p>
  
  <p>Here's MainFragment with the function (I excluded other functions, since I don't see how they contribute):</p>
  
  <pre><code>public class MainFragment extends Fragment {
  public void otherList() {
      SQLite db = new SQLite(getActivity());
      db.open();
      Calendar sCalendar = Calendar.getInstance();
      String day = sCalendar.getDisplayName(Calendar.DAY_OF_WEEK,
              Calendar.LONG, Locale.ENGLISH);
      Cursor c = db.getAllRecords(day);
      Calendar cal = Calendar.getInstance();
      int hour = cal.get(Calendar.HOUR_OF_DAY);
      arrayOfBars.clear();
      if (c.moveToFirst()) {
          do {
              String country = c.getString(0);
              String city = c.getString(1);
              String bar = c.getString(2);
              String timeStart = c.getString(3);
  
              String[] h = timeStart.split(":");
              int times = Integer.parseInt(h[0]);
  
              String timeEnd = c.getString(4);
              String[] h2 = timeEnd.split(":");
              int timee = Integer.parseInt(h2[0]);
  
              String placeLaLo = c.getString(5);
              String description = c.getString(6);
              String likes = c.getString(7);
              String offer = c.getString(8);
  
              if (hour &lt; (times + 1) || hour &lt; (timee)) {
                  getPrefs = PreferenceManager
                          .getDefaultSharedPreferences(MainFragment.this
                                  .getActivity());
                  boolean lay = getPrefs.getBoolean("boolean", false);
                  if (lay == true) {
                      while (times &lt; timee) {
                          timeStart = times + ":" + h[1];
                          times++;
                          timeEnd = times + ":" + h2[1];
                          arrayOfBars.add(new BarObject(country, city, bar,
                                  timeStart, timeEnd, placeLaLo, description,
                                  likes, offer, bar));
                      }
                  } else {
                      arrayOfBars.add(new BarObject(country, city, bar,
                              timeStart, timeEnd, placeLaLo, description,
                              likes, offer, bar));
                  }
              }
  
          } while (c.moveToNext());
  
          Collections.sort(arrayOfBars, new BarObject.CompST());
  
          lv2.setAdapter(null);
          adapter = new BarAdapter(getActivity(), arrayOfBars);
          lv2.setAdapter(adapter);
      } else {
          Toast.makeText(getActivity(), "No database found",
                  Toast.LENGTH_LONG).show();
      }
      db.close();
  }
  </code></pre>
  
  <p>}</p>
  
  <p>And here's the other fragment:</p>
  
  <pre><code>public class SocialMedia extends Fragment {
  ImageButton facebook, twitter, layoutS;
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
      View view = inflater.inflate(R.layout.social_media, container, false);
      layoutS = (ImageButton) view.findViewById(R.id.ibLayout);
  
      layoutS.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              SharedPreferences getPrefs = PreferenceManager
                      .getDefaultSharedPreferences(SocialMedia.this
                              .getActivity());
              boolean lay = getPrefs.getBoolean("boolean", false);
              SharedPreferences.Editor e = getPrefs.edit();
              lay = !lay;
              e.putBoolean("boolean", lay);
              e.commit();
                              //Here I want to call otherList() from MainFragment
          }
      });
      return view;
  }
  </code></pre>
  
  <p>}</p>