首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不支持方法'getSupportFragmentManager()‘

不支持方法'getSupportFragmentManager()‘
EN

Stack Overflow用户
提问于 2012-10-29 20:14:45
回答 1查看 49.8K关注 0票数 17

所以我试着为安卓11以下的版本启用datepicker。为此,我使用了支持库v4。我导入了所有必要的东西:

代码语言:javascript
复制
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;

我创建了一个类:

代码语言:javascript
复制
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);
}
}

所以类编译好了。但问题是当我尝试使用它的时候。我有一个用于edittext的onclick方法,如下所示:

代码语言:javascript
复制
public void showDatePicker(View v) {
    DialogFragment selectDate = (DialogFragment) new DatePicker();
    EditText edit=(EditText)v;
    ((DatePicker) selectDate).setTextField(edit);
    selectDate.show(getSupportFragmentManager(), "datePicker");
}

然而,在最后一行,我得到了错误:

代码语言:javascript
复制
The method getSupportFragmentManager() is undefined for the type MainActivity

有什么办法解决这个问题吗?顺便说一句,我还没有导入任何类似的东西

代码语言:javascript
复制
android.app.Fragment;

所以这里不是这样的:S

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-29 20:18:37

我的猜测是您的MainActivity没有扩展FragmentActivity!在SupportPackage中,Activity必须继承自FragmentActivity才能获得像getSupportedFragmentManager()这样的方法。

编辑:

由于您的活动继承自另一个类,因此您可以尝试实现其中一个类的行为,并将其合并。也就是说,你可以在这里找到FragmentActivity的代码:FragmentActivity Source

票数 66
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13121432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档