2011-03-15 5 views
2

here 튜토리얼의 여러 TextViews로 사용자 정의 listview를 구현했으며 모두 잘 작동하고 있지만 새 데이터로 바로 textviews를 업데이트 할 수 있기를 바랍니다. .SimpleAdapter에서 새 데이터로 listview 업데이트

예를 들어 목록보기의 항목에 클릭 수신기를 설정하고 클릭하면 사용자에게 데이터를 입력하라는 대화 상자가 표시됩니다. populateList()를 호출하여 새 데이터를 가져오고 배열을 업데이트 할 수 있지만 작업이 다시 시작될 때까지 새 데이터가 textviews에 표시되지 않습니다. SimpleAdapter에게 대화 상자가 닫히 자마자 새 데이터를 얻고 표시하도록하려면 어떻게해야합니까?

편집 : 표시 CODE :에서 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(); 

     } 

답변

3

시도해 보셨습니까

adapter.notifyDataSetChanged(); 
+0

@slund : yep .... nada .... what the $ # – dell116

+0

@ dell116 weird. 코드를 게시 할 수 있습니까? –

+0

@Robby Pond : 더럽지 만오고 있습니다. – dell116

관련 문제