編輯:關於Android編程
- 中國工商銀行
- 中國人民銀行
- 中國銀行
- 中國建設銀行
- 中國農業銀行
- 招商銀行
如果不需要邏輯的話,至此一個簡單的下拉菜單就寫完了,不需要adapter,也不需要在MainActivity中findViewById(),看效果圖:
- android:entries=”@array/spin001_array”
可以直接在xml中綁定數據源。上面的例子就是這種方式實現的。
- spinnerMode: 顯示形式
有dropdown和dialog兩種顯示模式。上面的例子就是dropdown形式的,dialog形式的為:
- spin001.setDropDownHorizontalOffset();
spinnerMode=”dropdown”時,下拉的項目選擇窗口在水平方向相對於Spinner窗口的偏移量。單位為pixels像素值。
- android:dropDownSelector
用於設置列表選擇器的顯示效果。
- spin001.setDropDownVerticalOffset();
spinnerMode=”dropdown”時,下拉的項目選擇窗口在垂直方向相對於Spinner窗口的偏移量。單位為pixels像素值。
- android:dropDownWidth=”“
設置下拉的項目選擇窗口的寬度。
- android:popupBackground=”“
設置下拉的項目選擇窗口的背景。
- spin001.setPopupBackgroundDrawable();
設置下拉的項目選擇窗口的背景dwawable。效果圖:
- android:prompt=”@string/bank_prompt”
設置下拉的項目選擇窗口的標題,要采用@string/格式引用數據,不然會報錯的。效果圖:
- 采用ArrayAdapter
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.array.spin001_array, android.R.layout.simple_spinner_item);
spin001.setAdapter(adapter);
效果圖如下:
細心的我們會發現,為何在下拉窗口中,item之間的間距這麼小,看著很不舒服,這時候就需要自定義下拉item了。在adapter中提供了一個方法setDropDownViewResource();利用它就可以實現美觀的效果了。
adapter.setDropDownViewResource(R.layout.custom_spinner_item);代碼如下:
效果如下:
- 自定義BaseAdapter
當我們需要在下拉框中顯示一個用戶信息,比如頭像,用戶名,手機號時,我們就需要使用BaseAdapter了。效果圖如下:
代碼:
activity_main.xml
MainActivity.java
Spinner spin002 = (Spinner) findViewById(R.id.spin002);
// 建立數據源
List persons = new ArrayList();
persons.add(new Person("小明", "153********"));
persons.add(new Person("小亮", "136********"));
persons.add(new Person("花花", "170********"));
persons.add(new Person("瓜瓜", "139********"));
// 建立Adapter綁定數據源
MySpinnerAdapter mAdapter = new MySpinnerAdapter(this, persons);
//綁定Adapter
spin002.setAdapter(mAdapter);
Person.java
/**
* @author zyc
* created at 2016/4/27 11:28
*/
public class Person {
private String personName;
private String cellPhone;
public Person(String personName, String cellPhone) {
super();
this.personName = personName;
this.cellPhone = cellPhone;
}
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public String getcellPhone() {
return cellPhone;
}
public void setcellPhone(String cellPhone) {
this.cellPhone = cellPhone;
}
}
MySpinnerAdapter.java
/**
* @author zyc
* created at 2016/4/27 11:30
*/
public class MySpinnerAdapter extends BaseAdapter {
private Context mContext;
private List mList;
private final LayoutInflater layoutInflater;
public MySpinnerAdapter(Context context, List persons) {
this.mContext = context;
this.mList = persons;
layoutInflater = LayoutInflater.from(mContext);
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int i) {
return mList.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
convertView = layoutInflater.inflate(R.layout.spinner_base_adapter, viewGroup, false);
if (convertView != null) {
ImageView imageView = (ImageView) convertView.findViewById(R.id.iv_head);
imageView.setImageResource(R.drawable.dachaoxuexi);
TextView tv_name = (TextView) convertView.findViewById(R.id.tv_name);
TextView tv_cell_phone = (TextView) convertView.findViewById(R.id.tv_cell_phone);
tv_name.setText(mList.get(i).getPersonName());
tv_cell_phone.setText(mList.get(i).getcellPhone());
}
return convertView;
}
}
ok,Spinner的使用總結,就到這了,有需要補充的,後續會補充上的。
一、項目目錄結構二、activity_main.xml代碼<RelativeLayout xmlns:android=http://schemas.android.
在發現這個類之前,一直是用的handler,子線程發消息,UI線程進行倒計時的顯示工作。前幾天在做一個倒計時顯示的時候發現了這個類,用起來很方便 翻看了下源碼,內部已經幫
針對Android Studio的系列文章,都是一個小問題為一篇,並沒有整理到一起,主要是方便大家根據自己的需要來查找,同時為了便於大家理解,都會直接上圖。 我這裡使用的
Android內核中判別啟動模式 問題出現在驅動組描述了一個問題是內核的一個驅動中設置的電壓值在正常模式和其它模式啟動時電壓值