0

アダプターとリストを更新しようとしています。しかし、メソッド Myadapter.notifyDataSetChanged() と list.clear() を配置する場所についてはほとんど混乱していません。それらが機能するように...誰か私のコードを編集して、それから抜け出すのを手伝ってください..これが私のコードです

@オーバーライド

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);
    }
}
4

2 に答える 2

1

myadapter.notifyDataSetChanged(); を使用しています。myadapter を初期化する前に。使用前に初期化してください。

于 2012-08-03T08:07:27.220 に答える
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();


}
于 2012-08-03T07:48:25.920 に答える