본문 바로가기

DEVELOPMENT/ANDROID

[android] SpinnerAdapter Method

여러개의 스피너를 사용하면, 소스가 길어지고 지저분해서 보기 힘들어진다.


이런 불편함을 위하여 클래스를 새로 생성했다.


사용 방법은 아래 클래스를 만든다.


  1. public class SpinnerAdapter
  2. {
  3.    
  4.     private ArrayAdapter<CharSequence> adspin;
  5.     private Activity mActivity;
  6.     private OnSpinnerItemSelectedListener mSpinnerItemSelected;
  7.  
  8.     public SpinnerAdapter(Activity _activity)
  9.     {
  10.         mActivity = _activity;
  11.         mSpinnerItemSelected = (OnSpinnerItemSelectedListener)mActivity;
  12.     }
  13.  
  14.     public interface OnSpinnerItemSelectedListener
  15.     {
  16.         public void onSpinnerItemSelected(AdapterView<?> arg0, View arg1,int position, long arg3);
  17.     }
  18.        
  19.      public void SAdapter(int _spinner, int textArrayResId)
  20.      {
  21.          try
  22.          {
  23.              Spinner spinner = (Spinner)mActivity.findViewById(_spinner);
  24.              
  25.              adspin = ArrayAdapter.createFromResource(mActivity, textArrayResId, android.R.layout.simple_spinner_item);
  26.              adspin.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  27.    
  28.              if(adspin != null)
  29.              {
  30.                  spinner.setAdapter(adspin);
  31.                  spinner.setOnItemSelectedListener(new OnItemSelectedListener()
  32.                  {
  33.                         @Override
  34.                         public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long arg3)
  35.                         {
  36.                             if(mSpinnerItemSelected != null)
  37.                                 mSpinnerItemSelected.onSpinnerItemSelected(arg0, arg1, position, arg3);
  38.                         }
  39.            
  40.                         @Override
  41.                         public void onNothingSelected(AdapterView<?> arg0)
  42.                         {}
  43.                     });
  44.              }
  45.              
  46.          }
  47.          catch(Exception e)
  48.          {
  49.              
  50.          }
  51.        
  52.     }
  53.  
  54. }


그리고 사용하고자 하는 클래스로 돌아가서 스피너를 생성해준다.


  1. spin = new SpinnerAdapter(this);
  2. spin.SAdapter(R.id.[spinner id], R.array.[array id]);