Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在添加内容之前,必须调用onClick()requestfeature_Android_Datepicker - Fatal编程技术网

Android 在添加内容之前,必须调用onClick()requestfeature

Android 在添加内容之前,必须调用onClick()requestfeature,android,datepicker,Android,Datepicker,我有一个包含按钮和日期选择器(以及其他东西)的片段。当用户单击按钮时,将显示datepickerdialog。起初,我有一个单独的datepicker片段,我没有那个错误。但是,当我将日期选择器放入主片段时,当我单击按钮时出现了这个错误 android.util.AndroidRuntimeException: requestFeature() must be called before adding content 我的代码中没有requestfeature()。这是我的MainActivi

我有一个包含按钮和日期选择器(以及其他东西)的片段。当用户单击按钮时,将显示datepickerdialog。起初,我有一个单独的datepicker片段,我没有那个错误。但是,当我将日期选择器放入主片段时,当我单击按钮时出现了这个错误

android.util.AndroidRuntimeException: requestFeature() must be called before adding content
我的代码中没有requestfeature()。这是我的MainActivity.java的一部分

public class MainActivity extends AppCompatActivity{

private Toolbar mToolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    //toolbar
    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);


    //database
    DbHelper databaseHelper = new DbHelper(this);
    databaseHelper.getWritableDatabase();
}

public void onClick(View view){
        DialogFragment dp = new MyFragment();
        dp.show(getSupportFragmentManager(), "date picker");
    }
public class MyFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {


private View mRootView;
private Item currentItem = null;
private Toolbar mToolbar;
private String Note;
private TextView dateText;
private TextView error;
private EditText item;
private EditText quantity;
private EditText note;
private Spinner sspinner;
private Spinner spinner;
private int spinnerCount=0;
private int spinnerInitializedCount=0;
private int remSpinnerCount=0;
private int remSpinnerInitializedCount=0;

public MyFragment() {

}

public static MyFragment newInstance(long id) {
    MyFragment myFragment = new MyFragment();

    if (id > 0) {
        Bundle bundle = new Bundle();
        bundle.putLong("id", id);
        myFragment.setArguments(bundle);
    }
    return myFragment;
}

public void getCurrentItem() {
    Bundle args = getArguments();
    if (args != null && args.containsKey("id")) {
        long id = args.getLong("id", 0);
        if (id > 0) {
            currentItem = ItemManager.newInstance(getActivity()).getMyItem(id);
        }
    }
}


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    getCurrentItem();

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    mRootView = inflater.inflate(R.layout.item_fragment, container, false);
    item=(EditText)mRootView.findViewById((R.id.item));
    quantity=(EditText)mRootView.findViewById(R.id.amount);
    error = (TextView)mRootView.findViewById(R.id.error);
    note = (EditText)mRootView.findViewById(R.id.notes);
    dateText = (TextView)mRootView.findViewById(R.id.date_selected);


    spinner = (Spinner) mRootView.findViewById(R.id.units);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.units, android.R.layout.simple_spinner_dropdown_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);


    sspinner = (Spinner) mRootView.findViewById(R.id.reminder_list);
    ArrayAdapter<CharSequence> aadapter = ArrayAdapter.createFromResource(getActivity(), R.array.countdown_reminder, android.R.layout.simple_spinner_dropdown_item);
    aadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sspinner.setAdapter(aadapter);

    spinner.setOnItemSelectedListener(spinnerListener);
    sspinner.setOnItemSelectedListener(spinnerListener);
    spinnerCount=1;
    sspinnerCount=1;

    return mRootView;
}


public static final String[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
Calendar calendar = Calendar.getInstance();
private String selected_date;

@Override
public Dialog onCreateDialog(Bundle savedInstanceState){

    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int date = calendar.get(Calendar.DATE);

    return new DatePickerDialog(getActivity(), this, year, month, date);
}

@Override
public void onDateSet(DatePicker view, int year, int month, int date) {

    calendar.set(year, month + 1, date);
    calendar.getTime();
    String mon = months[month];

    //get the selected date
    selected_date = ""+view.getDayOfMonth()+ "/" + ""+((view.getMonth())+1)+ "/" + "" +view.getYear();


    //Display the selected date after the date has been set
    dateText = (TextView)getActivity().findViewById(R.id.date_selected);
    dateText.setText(selected_date);

}
这是MyFragment.java的一部分

public class MainActivity extends AppCompatActivity{

private Toolbar mToolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    //toolbar
    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);


    //database
    DbHelper databaseHelper = new DbHelper(this);
    databaseHelper.getWritableDatabase();
}

public void onClick(View view){
        DialogFragment dp = new MyFragment();
        dp.show(getSupportFragmentManager(), "date picker");
    }
public class MyFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {


private View mRootView;
private Item currentItem = null;
private Toolbar mToolbar;
private String Note;
private TextView dateText;
private TextView error;
private EditText item;
private EditText quantity;
private EditText note;
private Spinner sspinner;
private Spinner spinner;
private int spinnerCount=0;
private int spinnerInitializedCount=0;
private int remSpinnerCount=0;
private int remSpinnerInitializedCount=0;

public MyFragment() {

}

public static MyFragment newInstance(long id) {
    MyFragment myFragment = new MyFragment();

    if (id > 0) {
        Bundle bundle = new Bundle();
        bundle.putLong("id", id);
        myFragment.setArguments(bundle);
    }
    return myFragment;
}

public void getCurrentItem() {
    Bundle args = getArguments();
    if (args != null && args.containsKey("id")) {
        long id = args.getLong("id", 0);
        if (id > 0) {
            currentItem = ItemManager.newInstance(getActivity()).getMyItem(id);
        }
    }
}


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    getCurrentItem();

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    mRootView = inflater.inflate(R.layout.item_fragment, container, false);
    item=(EditText)mRootView.findViewById((R.id.item));
    quantity=(EditText)mRootView.findViewById(R.id.amount);
    error = (TextView)mRootView.findViewById(R.id.error);
    note = (EditText)mRootView.findViewById(R.id.notes);
    dateText = (TextView)mRootView.findViewById(R.id.date_selected);


    spinner = (Spinner) mRootView.findViewById(R.id.units);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.units, android.R.layout.simple_spinner_dropdown_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);


    sspinner = (Spinner) mRootView.findViewById(R.id.reminder_list);
    ArrayAdapter<CharSequence> aadapter = ArrayAdapter.createFromResource(getActivity(), R.array.countdown_reminder, android.R.layout.simple_spinner_dropdown_item);
    aadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sspinner.setAdapter(aadapter);

    spinner.setOnItemSelectedListener(spinnerListener);
    sspinner.setOnItemSelectedListener(spinnerListener);
    spinnerCount=1;
    sspinnerCount=1;

    return mRootView;
}


public static final String[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
Calendar calendar = Calendar.getInstance();
private String selected_date;

@Override
public Dialog onCreateDialog(Bundle savedInstanceState){

    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int date = calendar.get(Calendar.DATE);

    return new DatePickerDialog(getActivity(), this, year, month, date);
}

@Override
public void onDateSet(DatePicker view, int year, int month, int date) {

    calendar.set(year, month + 1, date);
    calendar.getTime();
    String mon = months[month];

    //get the selected date
    selected_date = ""+view.getDayOfMonth()+ "/" + ""+((view.getMonth())+1)+ "/" + "" +view.getYear();


    //Display the selected date after the date has been set
    dateText = (TextView)getActivity().findViewById(R.id.date_selected);
    dateText.setText(selected_date);

}
公共类MyFragment扩展DialogFragment实现DatePickerDialog.OnDateSetListener{
私人视图mRootView;
私有项currentItem=null;
私有工具栏mToolbar;
私人弦乐;
私有文本查看日期文本;
私有文本视图错误;
专用编辑文本项;
私人编辑文本数量;
私人编辑文本说明;
私人纺纱机;
私人纺纱机;
专用int喷丝头计数=0;
私有int spinnerInitializedCount=0;
私有int-remSpinnerCount=0;
private int remSpinnerInitializedCount=0;
公共MyFragment(){
}
公共静态MyFragment newInstance(长id){
MyFragment MyFragment=新的MyFragment();
如果(id>0){
Bundle=新Bundle();
bundle.putLong(“id”,id);
setArguments(bundle);
}
返回myFragment;
}
公共无效getCurrentItem(){
Bundle args=getArguments();
if(args!=null&&args.containsKey(“id”)){
long id=args.getLong(“id”,0);
如果(id>0){
currentItem=ItemManager.newInstance(getActivity()).getMyItem(id);
}
}
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
设置选项菜单(真);
getCurrentItem();
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
mRootView=充气机。充气(R.layout.item_碎片,容器,假);
item=(EditText)mRootView.findViewById((R.id.item));
数量=(EditText)mRootView.findViewById(R.id.amount);
error=(TextView)mRootView.findViewById(R.id.error);
note=(EditText)mRootView.findViewById(R.id.notes);
dateText=(TextView)mRootView.findViewById(R.id.date_选中);
微调器=(微调器)mRootView.findViewById(R.id.units);
ArrayAdapter=ArrayAdapter.createFromResource(getActivity(),R.array.units,android.R.layout.simple\u微调器\u下拉菜单\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
sspinner=(微调器)mRootView.findViewById(R.id.rements\u列表);
ArrayAdapter aaAdapter=ArrayAdapter.createFromResource(getActivity(),R.array.countdown\u提醒,android.R.layout.simple\u微调器\u下拉列表\u项);
aaadapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
sspinner.setAdapter(aadapter);
spinner.setOnItemSelectedListener(spinnerListener);
sspinner.setOnItemSelectedListener(喷丝头Listener);
喷丝头数=1;
sspinneCount=1;
返回mRootView;
}
公共静态最终字符串[]月={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”};
日历=Calendar.getInstance();
选择的私有字符串\u日期;
@凌驾
创建对话框上的公共对话框(Bundle savedInstanceState){
int year=calendar.get(calendar.year);
int month=calendar.get(calendar.month);
int date=calendar.get(calendar.date);
返回新的DatePickerDialog(getActivity(),this,year,month,date);
}
@凌驾
公共void onDateSet(日期选择器视图、整数年、整数月、整数日期){
日历集(年、月+1、日期);
calendar.getTime();
字符串mon=月[月];
//获取所选日期
选定的_date=“”+视图.getDayOfMonth()+“/”+”+((视图.getMonth())+1)+“/”+”+视图.getYear();
//设置日期后显示所选日期
dateText=(TextView)getActivity().findViewById(R.id.date_选中);
dateText.setText(所选日期);
}

您是否在代码中的某个地方调用了
requestFeature()
?不,我没有requestFeature(),我只是在片段中添加了日期选择器后才出现此错误。这就是为什么我只在这里为ActionBarSherlock和AppCompat库放了这部分代码,有必要在
super.onCreate()之前调用
requestFeature()
我在super.onCreate()活动之前添加了requestfeature(),但仍然出现相同的错误?您是否在代码中的某个地方调用了
requestfeature()
?不,我没有requestfeature()我只有在将datepicker添加到片段中后才会出现此错误。这就是为什么我只在这里为ActionBarSherlock和AppCompat库添加了这部分代码,有必要在
super.onCreate()之前调用
requestFeature()
super.onCreate()
我在super.onCreate()活动之前添加了requestFeature(),但仍然会出现相同的错误?