2
我已经实现从一个教程多TextViews自定义列表视图中发现here,所有工作得很好,但我希望能够更新用新数据飞textviews 。更新列表视图中使用新的数据
比如我设置的列表视图中有关项目的点击收听,并且点击时会弹出一个对话框,提示用户输入数据。我可以通过调用populateList()来获取新数据并更新数组,但是新的数据不会显示在文本中,直到活动重新启动。我怎么能告诉simpleAdapter获取新数据并在对话结束后立即显示它?
编辑:代码所示:
在的onCreate:
lv = (ListView) findViewById(R.id.list);
adapter = new SimpleAdapter(
this,
list,
R.layout.listtextview,
new String[] {"Title","Desc"},
new int[] {R.id.settingsListItem,R.id.settingsListDesc}
);
populateList(settingsList, settingsListDetails);
lv.setAdapter(adapter);
lv.setOnItemClickListener
(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View
view,int position, long id)
{
if (position == 0)
{
showDialog(WAKE_TIME);
}
}
});
,弹出对话框:
public Dialog onCreateDialog(int id)
{
switch(id) {
case WAKE_TIME :
return new TimePickerDialog(this,WakeTimeSetListener,
wakeHour, wakeMinute, false);
}
的TimePicker对话框,notifyDataSetChanged被称为:
private TimePickerDialog.OnTimeSetListener WakeTimeSetListener = new
TimePickerDialog.OnTimeSetListener()
{
public void onTimeSet(TimePicker view, int hourOfDay, int minute)
{
wakeHour = hourOfDay;
wakeMinute = minute;
wakeHourText = Integer.toString(hourOfDay);
wakeMinuteText = Integer.toString(minute);
String preftime = hourOfDay + ":" + minute;
SimpleDateFormat df = new SimpleDateFormat("HH:mm");
SimpleDateFormat dfOut = new SimpleDateFormat("hh:mm a");
try
{
wakeDate = df.parse(preftime);
}
catch (ParseException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
populateList(settingsList, settingsListDetails);
adapter.notifyDataSetChanged();
}
@slund:yep .... nada .... $#(#? – dell116 2011-03-15 22:56:16
@ dell116很奇怪。你可以发布你的代码吗? – 2011-03-15 22:59:41
@Robby Pond:很脏,但它来了。 – dell116 2011-03-15 23:04:53