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