Метод getSupportFragmentManager() не поддерживается - программирование

Метод getSupportFragmentManager() не поддерживается

Итак, я пытаюсь включить datepicker для версий для Android ниже 11. Для этого я использую библиотеку поддержки v4. Я импортирую все необходимое:

import android.support.v4.app.*;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.DialogFragment;

И я создал класс:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.widget.EditText;
public class DatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener  {

public EditText textField;  

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, year, month, day);
}


public EditText getTextField() {
return textField;
}


public void setTextField(EditText textField) {
this.textField = textField;
}


public void onDateSet(DatePicker view, int year, int month, int day) {
textField.setText(day+"."+(month+1)+"."+year);
}

@Override
public void onDateSet(android.widget.DatePicker arg0, int arg1, int arg2,int arg3) {
textField.setText(arg3+"."+(arg2+1)+"."+arg1);
}
}

Итак, класс компилируется нормально. Но проблема в том, когда я пытаюсь его использовать. У меня есть метод onclick для edittext, который выглядит так:

public void showDatePicker(View v) {
    DialogFragment selectDate = (DialogFragment) new DatePicker();
    EditText edit=(EditText)v;
    ((DatePicker) selectDate).setTextField(edit);
    selectDate.show(getSupportFragmentManager(), "datePicker");
}

однако в последней строке я получаю ошибку:

The method getSupportFragmentManager() is undefined for the type MainActivity

Любые идеи, как это разрешить? btw я не импортировал ничего вроде

android.app.Fragment;

Итак, это не так: S

4b9b3361

Ответ 1

Я предполагаю, что ваш MainActivity не расширяет FragmentActivity! В SupportPackage Activity должна наследовать от FragmentActivity, чтобы получить методы типа getSupportedFragmentManager().

EDIT:

Поскольку ваша активность наследуется от другого класса, вы можете попытаться реализовать Поведение одного из этих классов и объединить их. Здесь вы найдете код для FragmentActivity: FragmentActivity Source