supportfragmentmanager getsupportfragmentmanager error begintransaction activity android datepicker

android - error - getsupportfragmentmanager() kotlin



El método ''getSupportFragmentManager()'' no es compatible (1)

¡Mi conjetura es que su MainActivity no está extendiendo FragmentActivity ! En el getSupportedFragmentManager() una actividad debe heredarse de FragmentActivity para obtener métodos como getSupportedFragmentManager() .

EDITAR:

Ya que su Actividad es heredada de otra clase, puede intentar implementar el Comportamiento de una de estas clases y combinarlas. Aquí encontrará el código para FragmentActivity: FragmentActivity Source

Así que estoy tratando de habilitar datepicker para las versiones de Android a continuación 11. para eso estoy usando la biblioteca de soporte v4. Importo todo lo necesario:

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;

Y creé una clase:

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

Así que la clase compila ok. Pero el problema es cuando trato de usarlo. Tengo un método onclick para edittext que se ve así:

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

Sin embargo en la última línea me sale el error:

The method getSupportFragmentManager() is undefined for the type MainActivity

¿Alguna idea de cómo resolver eso? por cierto no he importado nada como

android.app.Fragment;

Así que ese no es el caso aquí: S