spinner의 리스너 동작에 따라 보여주고 싶은 listview를 필터하고 싶습니다.

현재 spinner는 유효기간 값으로써 전체보기, 3일이내, 7일이내, 15일이내, 30일이내로 설정되어있구요.

switch문은 선택한 position에 따라 유효기간변수를 세팅하구요.

for문에서 커스텀 리스트뷰의 유효기간을 가져와서, Date로 형변환 뒤, 남은 유효기간을 계산합니다.

if문에서는 spinner에서 선택한 값보다 크다면 해당 커스텀리스트뷰를 숨기려고 합니다.

작다면 유효기간 이내이므로 보이게 할거구요.

if-else만 하면 될거같은데, 좀 난감하네요........

 

 

 

   exp_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
   public void onItemSelected(AdapterView<?> parent, View view,
     int position, long id) {
    java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(
      "yyyy.MM.dd");
    int exp_select = 0;
    switch(position){ // 선택한 유효기간 값
    case 1:
     exp_select = 3;
     break;
    case 2:
     exp_select = 7;
     break;
    case 3:
     exp_select = 15;
     break;
    case 4:
     exp_select = 30;
     break;
    }
    
    for(int i = 0 ; i < m_orders.size() ;  i++){
     Date today = new Date();
     java.util.Date exp_end = format.parse(m_orders.get(i).getExp());
     long exp_remain = (exp_end.getTime() - today.getTime())
       / (1000 * 60 * 60 * 24); // 쿠폰의 유효기간 - 현재날짜
     if(exp_remain > exp_select){
      // 숨길 커스텀리스트뷰의 값 
      m_adapter.getItem(i).....? 
     } else{
       // 보여줄 커스텀리스트뷰 
     }
     
    }
    m_adapter.notifyDataSetChanged(); // 리스트뷰를 새로고침