Android 使用新数据从simpleAdapter更新listview

Android 使用新数据从simpleAdapter更新listview,android,listview,simpleadapter,Android,Listview,Simpleadapter,我已经实现了一个自定义listview,其中包含了一个教程中的多个TextView,所有这些都很好地工作,但是我希望能够使用新数据动态更新TextView 例如,我在listview中的项目上设置了一个click listener,单击时会显示一个对话框,提示用户输入数据。我可以通过调用populateList()来获取新数据并更新数组,但在活动重新启动之前,新数据不会显示在文本视图中。如何让simpleAdapter获取新数据并在对话框关闭后立即显示 编辑:显示代码: 在onCreate中:

我已经实现了一个自定义listview,其中包含了一个教程中的多个TextView,所有这些都很好地工作,但是我希望能够使用新数据动态更新TextView

例如,我在listview中的项目上设置了一个click listener,单击时会显示一个对话框,提示用户输入数据。我可以通过调用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);
                   }        
                }
         });
调用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(); 

        }
你试过了吗

adapter.notifyDataSetChanged();

@罗比·庞德:脏兮兮的,但马上就要来了。@dell116-对不起,我没有马上赶上。SimpleAdapter仅为静态数据而设计,在数据更改时,除非创建一个全新的SimpleAdapter实例,否则不会更新。请参阅此处的附加答案@slund-不要道歉,谢谢您的输入。需要输入!(短路电影参考)是否有其他方法可以使用相同的教程,但使用ArrayAdapter或其他东西?这真的开始让我沮丧了。@slund-你可以在SimpleAdapter上调用notifyDataSetChanged()。我的问题是,当我调用populateList()方法时,我没有正确地重新设置变量值,这使我相信没有任何变化。上面的代码在正确调用populateList()的情况下运行良好,该函数使用新数据重新分配其中的变量。@dell116-太棒了!很高兴你让它工作了。我也学到了一些东西。
adapter.notifyDataSetChanged();