2012-08-03 4 views
0

내 목록뿐만 아니라 어댑터를 새로 고치려고합니다. 하지만 나는 그들이 나를 위해 일할 수 있도록 ... Myadapter.notifyDataSetChanged() 및 list.clear() 메서드를 배치 할 위치에 관한 약간의 혼란을 가지고 ... 어느 누구도 내 코드를 편집하여 나와서 나오도록 도울 수 있습니다. 여기Myadapter.notifyDataSetChanged() throwing error

@Override

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

. 코드를 바꿀 수 있니? –

관련 문제