Android 사용자 정의 Spinner 어댑터 배우 기

본 고 는 안 드 로 이 드 사용자 정의 Spinner 어댑터 에 관 한 지식 을 공유 하고 자 합 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
효과

핵심 코드
주석 에 중점 을 두 세 요.
(1)Spinner 의 레이아웃:carbrand_spinner.xml
바로 튀 어 나 온 드 롭 다운 목록 의 레이아웃 입 니 다.뒤의 레이아웃 은 꺼 내지 않 고 망신 을 주지 않 습 니 다.어쨌든 Spinner 의 id 가 carBrandSpinner 라 는 것 을 알 면 됩 니 다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:orientation="horizontal">

  <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dp">

    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="New Text"
      android:id="@+id/car_brand_name"
      android:layout_gravity="left"
      android:layout_alignParentLeft="true"
      android:layout_marginTop="5dp"
      android:layout_marginBottom="5dp" />

    <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/car_brand_flag"
      android:layout_gravity="right"
      android:layout_alignParentRight="true" />
  </RelativeLayout>
</LinearLayout>
(2)어댑터

ArrayAdapter carBrandAdapter=new ArrayAdapter<String>
(
  AddCarActivity.this,
  android.R.layout.simple_spinner_dropdown_item,
  carBrandNameList// String[],        brandName
){
  @Override
  public View getDropDownView(int position, View convertView, ViewGroup parent) {
  convertView = View.inflate(AddCarActivity.this,R.layout.car_brand_spinner,null);//  Spinner  View
  if(convertView!=null)
  {
    TextView carBrandNameView = (TextView)convertView.findViewById(R.id.car_brand_name);
    ImageView carBrandFlagView = (ImageView)convertView.findViewById(R.id.car_brand_flag);
    try
    {
      JSONObject json = new JSONObject(carBrandList.get(position).get("carBrand").toString());
      carBrandNameView.setText(json.getString("carBrandName"));//    ,               ,              
      }catch (Exception e){}
      Bitmap bitmap =Common.String2Bitmap(carBrandList.get(position).get("carBrandFlagContent").toString());//     ,          ,         String Bitmap   
      if(bitmap!=null)
      carBrandFlagView.setImageBitmap(bitmap);//    
      }
      return convertView;
      }
};
// Spinner set   
Spinner carBrandSpinner=(Spinner)findViewById(R.id.carBrandSpinner);
carBrandSpinner.setAdapter(carBrandAdapter);
carBrandSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
   @Override//  Item      
   public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {}
   @Override
   public void onNothingSelected(AdapterView<?> parent) {}
});
여기 서 끝!
이상 은 Android Spinner 어댑터 에 관 한 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기