我创建了一个在屏幕上显示google map的活动,该活动包含3个选项菜单以与用户选择进行交互。
当用户按下子菜单时,我想显示一个弹出输入对话框,用户可以输入日期(dd / mm / yyyy)或弹出日期选择器。我将使用该日期查询该日期保留的位置,然后在地图上标记。
我的问题是,当我尝试创建输入对话框或子菜单中的任何内容时,除地图视图外,屏幕上什么都没有显示。我认为这样做可能有些特殊。因此,我搜索了很多天,但仍然没有得到答案。
有人有想法吗?
请给我建议。这是我第一次使用Google Map。欣赏每个答案。
最佳答案
您的问题并非专门针对MapActivity。我有一个具有此功能的应用程序(一个显示date picker的MapActivity子类),没有任何问题。我怀疑问题在于您如何显示日期选择器。也许可以在一个简单的活动(即不是从MapActivity派生的活动)中尝试一下以确认这一点。
因此,在扩展MapActivity的类中,您将需要以下内容:
// the id for your dialog
static final int DATE_DIALOG_ID = 0;
// the date from the picker
Date mDate;
// so you are defining a member variable mDateSetListener which implements
// onDateSet. This gets called when the user selects a date.
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
Calendar cal = GregorianCalendar.getInstance();
cal.set (year, monthOfYear, dayOfMonth);
// store the date that was picked
mDate = cal.getTime();
// update your map
// ...
}
};
@Override
protected android.app.Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
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(this,
mDateSetListener,
year, month, day);
}
return null;
}
@Override public boolean onMenuItemSelected(int featureId, MenuItem item)
{
switch(item.getItemId())
{
// handle your date selection menu item
case R.id.date:
showDialog(DATE_DIALOG_ID);
break;
}
}
关于android - 如何在 map View 上创建输入对话框或日期选择器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6728489/