2013-04-18 2 views
1

tutorial here을 사용하여 사용자 정의 스피너를 만듭니다. 내가 (페이지 아래로 절반 방법) 클래스 CountryAdapter을 복사 할 때, 일식에 getResources()을 식별 할 수없는객체 ArrayAdapter가있는 사용자 정의 스피너는 getResources를 가져올 수 없습니다.

myFlag.setBackgroundDrawable(getResources().getDrawable(item.getCountryFlag())); 

사람이이 문제에 대한 수정 프로그램을 알고 있나요? 기본적으로 드로어 블을 어떻게 얻을 수 있을까요? 내가

public class CountryAdapter extends ArrayAdapter<CountryInfo> 
    { 
     private Activity context; 
     ArrayList<CountryInfo> data = null; 

     public CountryAdapter(Activity context, int resource, ArrayList<CountryInfo> data) 
     { 
      super(context, resource, data); 
      this.context = context; 
      this.data = data; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) 
     { // Ordinary view in Spinner, we use android.R.layout.simple_spinner_item 
      return super.getView(position, convertView, parent); 
     } 

     @Override 
     public View getDropDownView(int position, View convertView, ViewGroup parent) 
     { // This view starts when we click the spinner. 
      View row = convertView; 
      if(row == null) 
      { 
       LayoutInflater inflater = context.getLayoutInflater(); 
       row = inflater.inflate(R.layout.spinner_layout, parent, false); 
      } 

      CountryInfo item = data.get(position); 

      if(item != null) 
      { // Parse the data from each object and set it. 
       ImageView myFlag = (ImageView) row.findViewById(R.id.imageIcon); 
       TextView myCountry = (TextView) row.findViewById(R.id.countryName); 
       if(myFlag != null) 
       { 
        myFlag.setBackgroundDrawable(getResources().getDrawable(item.getCountryFlag())); 
       } 
       if(myCountry != null) 
        myCountry.setText(item.getCountryName()); 

      } 

      return row; 
     } 
    } 
} 

답변

2

getResources() 방법 아래의 클래스를 복사하고 사용할 수 없습니다 (이 문맥을 확장,이 경우 귀하의 활동 클래스)를 ArrayAdapter 클래스, 실제로는 Context에서 온다. 활동에 대한 참조가 있으니 대신 context.getResources()을 사용해보세요.

관련 문제