在我的应用程序中,用户可以添加新的城市。这应如下所示:
appears.
省对话总是一样的,所以我把城市对话变成了一个单独的对话。问题是,由于onCreateDialog()只是在第一次添加城市时才被调用,所以我不知道如何根据选定的省份调整这个列表。addItems()是AlertDialog.builder的一种方法,据我所知,在onPrepareDialog中它对我没有多大用处。
如何在每次调用对话框时更改对话框中的项目列表(并相应地更新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();}
发布于 2011-09-15 08:14:38
onPrepareDialog是您可以更改列表值的地方。我以前也做过类似的事。如果您需要帮助编写代码,请发布代码。
https://stackoverflow.com/questions/7427035
复制相似问题