首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更改AlertDialog中列出的项目?

如何更改AlertDialog中列出的项目?
EN

Stack Overflow用户
提问于 2011-09-15 07:04:00
回答 1查看 250关注 0票数 1

在我的应用程序中,用户可以添加新的城市。这应如下所示:

appears.

  • Selects

  • 按下菜单中的“添加城市”按钮。

  • 从列表(AlertDialog)中选择一个省份,该列表将从基于选定省份创建的列表中选择一个城市。

省对话总是一样的,所以我把城市对话变成了一个单独的对话。问题是,由于onCreateDialog()只是在第一次添加城市时才被调用,所以我不知道如何根据选定的省份调整这个列表。addItems()是AlertDialog.builder的一种方法,据我所知,在onPrepareDialog中它对我没有多大用处。

如何在每次调用对话框时更改对话框中的项目列表(并相应地更新onClickListener )?

编辑:我已经添加了到目前为止的代码。我目前的实现有两个主要问题:

  1. 城市对话框(SelectLocationDialog)看起来与省对话框完全不同。我不知道如何使它们看起来完全相同(我现在使用的是android.R.layout.simple_list_item_1的城市对话框),
  2. 没有用于城市对话框的onClickListener,所以它实际上什么也做不了。

@重写受保护的对话框onCreateDialog(int id,Bundle args) { AlertDialog.Builder builder = null;AlertDialog.Builder (id) { case DIALOG_SELECT_PROVINCE:返回SelectProvinceDialog.create(this);case DIALOG_SELECT_LOCATION:返回SelectLocationDialog.create(this);默认值:返回null;}}@覆盖受保护的空白siteList.findSitesByProvince(Province.valueOf( onPrepareDialog(int id,对话框){ switch (id) { case DIALOG_SELECT_LOCATION: //查找在//前文对话框中选择的各省的所有城市/站点,siteList =新的XmlSiteListReader(this);String[]站点= siteList.siteNames();ListView siteListView =新ListView(this);ArrayAdapter siteListAdapter =新ArrayAdapter(this,android.R.layout.simple_list_item_1,sites);siteListView.setAdapter(siteListAdapter);dialog.setContentView(siteListView);} /** *允许用户选择要从其中添加*监视位置的省/区域。** @author Dean */公共类SelectProvinceDialog {私有静态最终省份;静态{省份=新的StringProvince.values().length;Province[]省= Province.values();for (int i= 0;i< provinces.length;i++) { PROVINCESi = provincesi.getFullName();} /** *创建“选择省”对话框窗口。** @param上下文这个对话框的上下文。*@返回构造的对话框。*/公共静态AlertDialog创建(最终上下文上下文){ AlertDialog.Builder selectProv =新的AlertDialog.Builder(上下文);selectProv.setTitle(“选择省”);selectProv.setItems(省份,新DialogInterface.OnClickListener() ){公共无效onClick(DialogInterface对话框,int项){ ((WeatherWatch)上下文).setSelectedProvince(PROVINCESitem);((活动)上下文) .showDialog(WeatherWatch.DIALOG_SELECT_LOCATION,null);});返回selectProv.create();}公共类SelectLocationDialog { /** *创建“选择位置”对话框窗口。** @param上下文这个对话框的上下文。*@返回构造的对话框。*/公共静态AlertDialog创建(最终上下文上下文){ AlertDialog.Builder selectLoc =新的AlertDialog.Builder(上下文);返回selectLoc.create();}

EN

Stack Overflow用户

发布于 2011-09-15 08:14:38

onPrepareDialog是您可以更改列表值的地方。我以前也做过类似的事。如果您需要帮助编写代码,请发布代码。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7427035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档