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();
}
@slund : yep .... nada .... what the $ # – dell116
@ dell116 weird. 코드를 게시 할 수 있습니까? –
@Robby Pond : 더럽지 만오고 있습니다. – dell116