title: Android: Call function of Activity out of DialogFragment
body: <p>I have a problem to call a function of my Activity out of DialogFragment. There are public functions in my MainActivity which I need to call for some calculations that are done in the DialogFragment. Everytime I try to call  a function with getActivity(). there occurs the problem "Cannot resolve method". </p>
  
  <p>Here is how I call the DialogFragment in the MainActivity:</p>
  
  <pre><code>FragmentManager fm = getSupportFragmentManager();
          DialogWeekly dialogWeekly = new DialogWeekly();
          dialogWeekly.show(getFragmentManager(), "fragment_dialogWeekly");
  </code></pre>
  
  <p>And this is how the DialogFragment looks like. I have added two comment lines where the mentioned problem occurs:</p>
  
  <pre><code>public class DialogReminder extends DialogFragment implements AdapterView.OnItemSelectedListener {
  
  //--- Static Variables -----------------------------------------------------------------------//
  private static final String MY_PREFS = "my_preferences";
  private static Activity activity;
  private static TimePicker timePicker;
  private static View dialogReminderView;
  
  //--- Integer Variables ----------------------------------------------------------------------//
  private Integer weekday;
  
  //--- String Variables -----------------------------------------------------------------------//
  private String weekdayString;
  
  //--- Other Variables ------------------------------------------------------------------------//
  private SharedPreferences sharedPreferences;
  
  
  /**
   * Empty constructor required for DialogFragment
   */
  public DialogReminder() { }
  
  /**
   * Called when a fragment is first attached to its activity.
   * onCreate(Bundle) will be called after this
   * @param activity Activity that is attached to this fragment
   */
  public void onAttach(Activity activity) {
      super.onAttach(activity);
  }
  
  //--- Override Functions ---------------------------------------------------------------------//
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      return inflater.inflate(R.layout.dialog_weekly, container);
  }
  
  @NonNull
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      sharedPreferences = getActivity().getSharedPreferences(MY_PREFS, Context.MODE_PRIVATE);
  
      return createAlertDialog();
  }
  
  @Override
  public void onItemSelected(AdapterView&lt;?&gt; parent, View view, int pos, long id) {
      Integer selectedItem = parent.getSelectedItemPosition();
      weekdayString = parent.getItemAtPosition(pos).toString();
      // Here is the problem: savePreferences -&gt; cannot resolve method
      getActivity().savePreferences("spinnerSelectionWeekday", String.valueOf(selectedItem));
  
      weekday = selectedItem + 2;
      if (weekday == 8) {
          weekday = 1;
      }
  }
  
  @Override
  public void onNothingSelected(AdapterView&lt;?&gt; parent) {
      // Another interface callback
  }
  
  //--- General Activity Functions -------------------------------------------------------------//
  
  /**
   *
   * @return
   */
  private AlertDialog createAlertDialog() {
      AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
      alert.setTitle(getResources().getString(R.string.optionReminder));
      alert.setView(dialogReminderView);
  
      alert.setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
  
          @Override
          public void onClick(DialogInterface dialog, int which) {
              dialog.cancel();
          }
      });
  
      alert.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
  
          @Override
          public void onClick(DialogInterface dialog, int which) {
              setReminder();
              dialog.cancel();
          }
      });
  
      setElementsGUI();
  
      return alert.create();
  }
  
  /**
   *
   */
  private void setElementsGUI() {
      Spinner spinner = (Spinner) dialogReminderView.findViewById(R.id.reminderWeekdaySpinner);
      ArrayAdapter&lt;CharSequence&gt; adapter = ArrayAdapter.createFromResource(getActivity(),
              R.array.reminderSpinnerArray, android.R.layout.simple_spinner_item);
      // Specify the layout to use when the list of choices appears
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      spinner.setOnItemSelectedListener(this);
      spinner.setAdapter(adapter);
      spinner.setSelection(Integer.parseInt(sharedPreferences.getString("spinnerSelectionWeekday", "0")));
  }
  
  //--- Button Functions -----------------------------------------------------------------------//
  
  /**
   *
   */
  private void setReminder() {
      // Here is the problem: all functions with getActivity() -&gt; cannot resolve method
      getActivity().checkReminder();
      getActivity().setWeekdayReminder(weekday);
      getActivity(("hour", String.valueOf(timePicker.getCurrentHour()));
      getActivity().savePreferences("minute", String.valueOf(timePicker.getCurrentMinute()));
  
      getActivity().checkReminder();
  
      String hour = String.valueOf(getActivity().getHour());
      if (hour.length() &lt; 2) {
          hour = "0" + hour;
      }
      String minute = String.valueOf(getActivity().getMinute());
      if (minute.length() &lt; 2) {
          minute = "0" + minute;
      }
      String time = hour + ":" + minute;
  
      String message = getResources().getString(R.string.reminderToast, weekdayString, time);
      Toast toast = Toast.makeText(getActivity().getApplicationContext(), message, Toast.LENGTH_LONG);
      toast.show();
  }
  </code></pre>
  
  <p>}</p>