android - 使用新数据从 simpleAdapter 更新 listview

标签 android listview simpleadapter

我已经从教程中实现了一个带有多个 TextView 的自定义 ListView here一切都运行良好,但我希望能够使用新数据动态更新 TextView 。

例如,我在 ListView 中的项目上设置了一个单击监听器,单击时会显示一个对话框,提示用户输入数据。我可以通过调用 populateList() 获取新数据并更新数组,但在重新启动 Activity 之前,新数据不会显示在 TextView 中。如何告诉 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);
}

调用notifyDataSetChanged的TimePicker对话框:

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();

关于android - 使用新数据从 simpleAdapter 更新 listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5319001/

相关文章:

android - 我如何在我的项目中使用 Phonegap 的 WaitingDialog 插件

java - ListPreference 抛出 NullPointerException

c# - 遍历 ListView 数据

android - 如何在 onItemClick 处理程序中获取项目 ID

android - 三个依赖的区别

php - 如何自动刷新(添加/更新) ListView 项而不重复数据?

java - Android-如何在简单的纸张 ListView 中显示图片

android - 使用 SimpleAdapter 更改 ListView 中项目的颜色

Android - 我为 listView 设置了自定义背景,但突出显示消失了

java - 如何将删除按钮 (x) 附加到动态创建的 ListView 的每个成员?