Android:日历弹出窗口中的日期选择器

Android:日历弹出窗口中的日期选择器,android,calendar,datepicker,Android,Calendar,Datepicker,在我的应用程序中,用户应该通过点击编辑文本来选择一个日期,因为目前我正在使用一个日期选择器对话框,它工作正常,但它就像打开另一个对话框一样。所以我想用弹出式菜单的方式显示它,查看图片。请帮助我实现这个目标 试试这个@Jarvis public class MainActivity extends Activity { EditText date; @Override protected void onCreate(Bundle savedInstanceState) { //

在我的应用程序中,用户应该通过点击编辑文本来选择一个日期,因为目前我正在使用一个日期选择器对话框,它工作正常,但它就像打开另一个对话框一样。所以我想用弹出式菜单的方式显示它,查看图片。请帮助我实现这个目标

试试这个@Jarvis

 public class MainActivity extends Activity {

 EditText date;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main2);
    date=(EditText)findViewById(R.id.date);

    date.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                new DatePickerDialog(ProximityActivity.this, dateD, myCalendar
                        .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                        myCalendar.get(Calendar.DAY_OF_MONTH)).show();
            }
        });
}
Calendar myCalendar = Calendar.getInstance();

DatePickerDialog.OnDateSetListener dateD = new DatePickerDialog.OnDateSetListener(){

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        // TODO Auto-generated method stub
         // TODO Auto-generated method stub
        myCalendar.set(Calendar.YEAR, year);
        myCalendar.set(Calendar.MONTH, monthOfYear);
        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
        updateLabel();
    }

};

  private void updateLabel() {

        String myFormat = "MM/dd/yy"; //In which you need put here
        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.ENGLISH);

        date.setText(sdf.format(myCalendar.getTime()));
  }

}

您只需创建一个新的弹出窗口并将日历视图充气到该窗口中:按照以下步骤操作:

edit_text.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                showPopup(MainActivity.this);
            }
        });
现在showPopup()方法:

现在,main3.xml文件:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >

 <CalendarView
    android:id="@+id/calendarView"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:clickable="true"
    android:showWeekNumber="false" />

 </LinearLayout>

在快照的下方,您可以自行定制这个弹出窗口。

它也仅显示单独的日期选择器对话框,请参见上面的图片“我需要完整日历”下拉列表。转到此链接查看完整日历视图:嘿,贾维斯,请稍等片刻,只需为此视图上载新代码。此视图有一个问题。当我单击屏幕后面的编辑文本时,键盘出现calendar@MD我认为,如果你在更新的Android Studio上使用DatePickerDialog,就会生成新的DatePickerDialog检查新的答案。这可能会对你有所帮助。谢谢,伙计,它解决了我的问题,但是否有可能为下一个月和上一个月添加箭头是的,你可以添加按钮,使布局与你的一样。如果我的回答对你有帮助,那就接受吧
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >

 <CalendarView
    android:id="@+id/calendarView"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:clickable="true"
    android:showWeekNumber="false" />

 </LinearLayout>