編輯:關於Android編程
本文為大家分享Android自定義Spinner適配器的相關知識點,供大家參考,具體內容如下
一、大致效果
二.關鍵代碼
在注釋中講重點吧。
(1)Spinner的布局: car_brand_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適配器的全部內容,希望對大家的學習有所幫助。
寫在前面的話: 看到標題這麼長可能大家有點抓狂了,是的,我在剛剛學這一篇的時候有一些不理解,什麼是布局泵?編輯每一個模板然後什麼是自定義Adapter?下面我們開始學習這
設置頁面(Settings)用於修改、保存app的特性或行為 等。如某些新聞app可以在設置頁面設置其白天/夜間模式、清除緩存、是否允許推送通知等。如下圖所示。如需為應用
在之前app寫完測試的時候,跑完整個老化階段包括數據收發都沒問題,鍵入 adb shell top -m 5 發現我的 app pid 占用的 CPU是最多的,其實我想說
先給大家展示下效果圖,如果大家感覺還不錯,請參考實現代碼很簡單的一個例子,點擊刷新驗證碼,刷新當前顯示的驗證碼,點擊確定,如果輸入的和顯示的匹配,就會跳轉到下一個界面中,