2012-08-03 206 views
0

我想刷新适配器以及我的列表。但我对将方法Myadapter.notifyDataSetChanged()和list.clear()放在哪里有点困惑,以便他们能为我工作...任何人都可以编辑我的代码,并帮助我从它出来..这里是我的代码Myadapter.notifyDataSetChanged()抛出错误

@覆盖

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    calendars = Uri.parse("content://com.android.calendar/events"); 
    managedCursor = getContentResolver().query(calendars, null, null, null, null); 
    if(managedCursor.getCount()==0){ 
     Toast.makeText(getBaseContext(), "There Is No Event To Show", Toast.LENGTH_SHORT).show(); 
     Intent i=new Intent(DisplayEventActivity.this,EventCalendarActivity.class); 
     startActivity(i); 
     finish(); 

    }else{ 
    setContentView(R.layout.displayevent); 
    id=getIntent().getExtras().getLong("ID"); 
    event_ListView=(ListView)findViewById(R.id.eventList); 
    event_ListView.setOnItemClickListener(this); 

    } 
} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    model.getEventTitleList().clear(); 
    myadapter.notifyDataSetChanged(); 
    event_ListView.setAdapter(myadapter); 

    if(id==9){ 
     model=new MyEventModel(managedCursor); 
     myadapter=new MyListAdapter(getApplicationContext(), model.getEventTitleList()); 
     event_ListView.setAdapter(myadapter); 

    }else if(id==10){ 
     model=new MyEventModel(managedCursor); 
     myadapter=new MyListAdapter(getApplicationContext(), model.getEventTitleList()); 
     event_ListView.setAdapter(myadapter); 
    } 

} 


public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { 
    event_Id=model.getEventId(); 
    System.out.println("Event id from disp="+event_Id); 
    Intent i=new Intent(DisplayEventActivity.this,UpdateEvent.class); 
    i.putExtra("EventId", event_Id); 
    startActivity(i); 
    } 
} 

回答

0

在适配器设置数据后,您应该通知数据的变化。

protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    model.getEventTitleList().clear(); 
    event_ListView.setAdapter(myadapter); 

    if(id==9){ 
     model=new MyEventModel(managedCursor); 
     myadapter=new MyListAdapter(getApplicationContext(), model.getEventTitleList()); 
     event_ListView.setAdapter(myadapter); 

    }else if(id==10){ 
     model=new MyEventModel(managedCursor); 
     myadapter=new MyListAdapter(getApplicationContext(), model.getEventTitleList()); 
     event_ListView.setAdapter(myadapter); 
    } 
    myadapter.notifyDataSetChanged(); 


} 
1

您正在使用myadapter.notifyDataSetChanged(); 在初始化myadapter之前。在使用前初始化它。

+0

正确。你可以请更改代码吗? – 2012-08-03 08:09:43