该方法'getSupportFragmentManager()'是unsuported方法、unsuported、getSupportFragmentManager

由网友(擦去眼泪继续笑。)分享简介:所以我尝试启用日期选择为Android版本吼叫11.我使用支持库V4。我导入所有必要的东西:So i'm trying to enable datepicker for android versions bellow 11. for that i'm using support library v4. I impor...

所以我尝试启用日期选择为Android版本吼叫11.我使用支持库V4。我导入所有必要的东西:

So i'm trying to enable datepicker for android versions bellow 11. for that i'm using support library v4. I import all the thing necessary:

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

因此​​类编译OK。但问题是,当我尝试使用它。我有一个onclick方法EditText上,看起来像:

So class compile ok. But the problem is when i try to use it. I have an onclick method for edittext that looks like that:

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

然而,在最后一行出现错误:

however in last line i get the error:

The method getSupportFragmentManager() is undefined for the type MainActivity

任何想法如何解决?顺便说一句,我没有进口任何类似

Any ideas how to resolve that? btw i don't have imported anything like

android.app.Fragment;

那么,是不是这里的情况:•

So that is not the case here :S

推荐答案

我的猜测是,你的 MainActivity 不延长 FragmentActivity !在SupportPackage的活动必须从FragmentActivity继承得到这样方法getSupportedFragmentManager()

My guess is that your MainActivity is not extending FragmentActivity! In the SupportPackage an Activity must inherit from FragmentActivity to get Methods like getSupportedFragmentManager().

编辑:

由于您的活动是从另一个类继承,你可以尝试实现这些类之一的行为与那种把它们合并。即在这里你会发现$ C $下FragmentActivity: FragmentActivity来源

Since your Activity is inheriting from another class, you can try to implement the Behavior of one of these classes and kind of merge them. I.e here you'll find the code for FragmentActivity: FragmentActivity Source

阅读全文

相关推荐

最新文章