gpt4 book ai didi

Android - 无法从 AlertDialog 中显示 DatePicker

转载 作者:行者123 更新时间:2023-11-29 01:34:54 25 4
gpt4 key购买 nike

我有一个 AlertDialog,其中包含一个用于启动 DatePicker 的按钮。是否可以在对话中完成此操作,如果可以,我将如何去做?

我已经搜索过 Google 和一些关于 SO 的帖子,但一直无法找到有关在 Alert Dialog 中完成 DatePicker 的信息。

最佳答案

没有看到你的代码,很难猜出错误在哪里,但你可以尝试下面的代码:

   public class MainActivity extends ActionBarActivity implements DatePickerDialog.OnDateSetListener {


Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Set your Alert Dialog box code
mContext=this;

AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setMessage("This is Alert dialog messgae")
.setTitle("Launch the date Picker")
.setPositiveButton("Date Pick", new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
//Launch a date picker from Here
showDatePickerDialog();

}
})
.setNegativeButton("cancel", new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
//Cancel the Dialog itself

}
});

AlertDialog dialog = builder.create();
dialog.show();

}


public void showDatePickerDialog() {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getFragmentManager(), "datePicker");
}

private static class DatePickerFragment extends DialogFragment {

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

// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), (OnDateSetListener) getActivity(), year, month, day);
}

}

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub

}


}

如您所见,我在单击警报对话框按钮时使用 Fragment 创建了一个日期选择器。

你的Activity需要实现

onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth)

否则应用程序会因 java.lang.ClassCastException 和以下错误消息而崩溃:

MainActivity$DatePickerFragment cannot be cast to android.app.DatePickerDialog$OnDateSetListener

关于Android - 无法从 AlertDialog 中显示 DatePicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28911587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com