Activity에서

 

DataControl dc = new DataControl(this, true); // 내부 데이터베이스 작업을 하는 객체입니다.
ArrayList<Spot> spotList = dc.getAllSpot(); // 원하는 정보를 가져와서 ArrayList로 저장하였습니다.
lv.setAdapter(new FavoritesAdapter(this, R.layout.planspots, spotList)); // 그래서 Adapter로 리스트를 넘겼어요. lv는 ListView입니다.

 

이렇게 되었구요 , Adapter에서는 이런 식으로 넘긴 Spot리스트 (items)에서 spot을 하나하나 뽑아서 관련된 작업 하구있습니다.
  final Spot spot = items.get(position);
  TextView favoritesText = (TextView)v.findViewById(R.id.favoritesText);
  
  if(favoritesText != null) {
   favoritesText.setText(spot.name);
  }
  
그런데 컨텍스트 메뉴를 사용해서 추가 / 삭제를 선택하면 해당 Spot에 대한 데이터 작업을 해야하거든요 .

리스트 뷰에 컨텍스트 메뉴를 해놨는데 , 이렇게 하면 Adapter안에 있는 Spot을 어떻게 가져오는지 모르겠어서요 ㅜㅜ

어떻게 하면 해결 가능할지 알려주세요 ㅜㅜ 개발자님들 , 부탁드립니다 !!

 

@Override
 public boolean onContextItemSelected(MenuItem item) {
  // TODO Auto-generated method stub
  
  switch(item.getItemId()) {
  
  case 1:
   // spot을 일정에 추가 , 이부분에서 Adapter 안의 Spot이 뭔지를 알아내서 데이터 작업을 해야하는데 어떻게 알아낼 수 있는지 모르겠어요 !
   return true;
  case 2:
   // spot을 디비에서 삭제
   return true;
  }
  //return super.onContextItemSelected(item);
  return true;
 }

 @Override
 public void onCreateContextMenu(ContextMenu menu, View v,
   ContextMenuInfo menuInfo) {
  // TODO Auto-generated method stub
  super.onCreateContextMenu(menu, v, menuInfo);
  
  if(v == lv) {
   menu.setHeaderTitle("여행바구니 관리");
   menu.add(0,1,0,"일정에 추가");
   menu.add(0,2,0,"목록에서 삭제");
  }
 }