亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在片段中顯示 DatePickerDialog

在片段中顯示 DatePickerDialog

慕絲7291255 2022-07-20 21:07:01
我正在創建一個具有 EditText 的片段,當我單擊它時,會出現一個 DatePickerDialog .. 但是每當我單擊 EditText 時我的應用程序就會崩潰..錯誤在這一行:    return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(), year, month, day);我的費用片段 Java 代碼(僅限 datepick 代碼):@Nullable    @Override    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,                             Bundle savedInstanceState) {        // Inflate the layout for this fragment        View view = inflater.inflate(R.layout.fragment_expense, container, false);            mDisplayDate = (EditText) view.findViewById(R.id.datePick);            mDisplayDate.setOnClickListener(new View.OnClickListener(){                @Override            public void onClick(View v) {                DialogFragment datePicker = new DatePickerFragment();                datePicker.show(getFragmentManager(), "date picker");            }        });        return view;    }    @Override    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {        Calendar c = Calendar.getInstance();        c.set(Calendar.YEAR, year);        c.set(Calendar.MONTH, month);        c.set(Calendar.DAY_OF_MONTH, dayOfMonth);        String currentDate = DateFormat.getDateInstance().format(c.getTime());        dates = Integer.toString(dayOfMonth);        months = Integer.toString(month);        years = Integer.toString(year);        mDisplayDate.setText(currentDate);    }日期選擇器片段 javapackage com.example.admin.test2;import android.app.DatePickerDialog;import android.app.Dialog;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.support.v4.app.DialogFragment;import java.util.Calendar;
查看完整描述

2 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

ExpenseFragment實現DatePickerDialog.OnDateSetListener,因此您需要使用getTargetFragment()而不是getActivity().


return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getTargetFragment(), year, month, day);

然后setTargetFragment在創建時使用DatePickerFragment.


mDisplayDate.setOnClickListener(new View.OnClickListener(){

    @Override

    public void onClick(View v) {

        DialogFragment datePicker = new DatePickerFragment();

        datePicker.setTargetFragment(ExpenseFragment.this, 0);

        datePicker.show(getFragmentManager(), "date picker");

    }

});


查看完整回答
反對 回復 2022-07-20
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

偵聽器是在您的父 Fragment 中實現的,而不是您的父 Activity,因此您必須替換getActivity()getParentFragment()

return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getParentFragment(), year, month, day);


查看完整回答
反對 回復 2022-07-20
  • 2 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號