Android的下拉列表是用Spinner 這個(gè)類來實(shí)現(xiàn)的。
創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、做網(wǎng)站、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。
Spinner的使用(分別使用ArrayAdapter和自定義Adapter實(shí)現(xiàn)),使用ArrayAdapter進(jìn)行適配數(shù)據(jù):
1:首先定義一個(gè)布局文件:
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/
/LinearLayout
2:建立數(shù)據(jù)源,使用數(shù)組,這些數(shù)據(jù)將會(huì)在Spinner下來列表中進(jìn)行顯示:
?xml version="1.0" encoding="utf-8"?
resources
string-array name="spinnername"
item北京/item
item上海 /item
item廣州/item
item深圳/item
/string-array
/resources
3:接著在Activity中加入如下的代碼(使用了系統(tǒng)定義的下拉列表的布局文件,當(dāng)然也可以自定義)
// 初始化控件
mSpinner = (Spinner) findViewById(R.id.spinner1);
// 建立數(shù)據(jù)源
String[] mItems = getResources().getStringArray(R.array.spinnername);
// 建立Adapter并且綁定數(shù)據(jù)源
ArrayAdapterString _Adapter=new ArrayAdapterString(this,android.R.layout.simple_spinner_item, mItems);
//綁定 Adapter到控件
mSpinner.setAdapter(_Adapter);
下載“GO桌面安卓版”
安裝好GO桌面
選擇 桌面設(shè)置——操作設(shè)置——下滑手勢設(shè)置——顯示/隱藏狀態(tài)欄
完成(試一下是不是隱藏了)
Go桌面功能
酷炫DIY主題:快速下載和更換主題,可根據(jù)不同的主題進(jìn)行自由搭配,DIY屬于自己的個(gè)性主題。
屏幕切換特效:提供數(shù)十種屏幕切換特效,與流暢的屏幕滑動(dòng)和動(dòng)畫效果配合更佳。
圖標(biāo)操作菜單:獨(dú)創(chuàng)桌面圖標(biāo)和小插件彈出操作菜單,在桌面即可一步完成更換圖標(biāo)、重命名和卸載等操作。
功能表:首款支持功能表文件夾的桌面軟件,內(nèi)置進(jìn)程管理器,和應(yīng)用隱藏功能,帶給你一步到位的玩機(jī)感受。
手勢操作:支持自定義上滑、下滑、Home鍵、雙擊空白處、雙指上滑、逆時(shí)針滑動(dòng)、順時(shí)針滑動(dòng),七種手勢對應(yīng)操作,快速激活功能表、通知欄及特定的應(yīng)用程序。
屏幕預(yù)覽:快速瀏覽切換屏幕、增減屏幕個(gè)數(shù)及調(diào)整屏幕位置,支持快速跨屏幕移動(dòng)圖標(biāo)。
實(shí)現(xiàn)方式:
1、水平布局一個(gè)TextView和一個(gè)ImageView(小黑箭頭)
2、實(shí)現(xiàn)點(diǎn)擊ImageView的單擊事件,彈出PopupWindow
3、PopupWindow中實(shí)現(xiàn)下拉列表
關(guān)鍵代碼示例:
1、布局
LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
TextView/
ImageView /
/LinearLayout
2、單擊事件
image.setBackgroundResource(R.drawable.gerendang_jiantou);
image.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//彈出popupwindow
}
});
3、pupupwindow相關(guān)代碼
ListView lv = new ListView(this);
adapter = new OptionsAdapter(context, datas); // 根據(jù)數(shù)據(jù),設(shè)置下拉框顯示
list.setAdapter(adapter);
/**
* 兩種不同長度的下拉框,主要是為了適應(yīng)屏幕的大小
*/
if (p_width 0) {
pWindow = new PopupWindow(v, par.getWidth(), 150);
} else {
pWindow = new PopupWindow(v, par.getWidth(), 300);
}
pWindow.setFocusable(true); //能夠焦點(diǎn)獲得
pWindow.setBackgroundDrawable(new BitmapDrawable()); //設(shè)置背景
pWindow.setOutsideTouchable(true); //外部點(diǎn)擊關(guān)閉
pWindow.update(); //更新位置
在res/menu下新建一個(gè)menu類型的xml,并在內(nèi)部編寫item,每一個(gè)item是一個(gè)菜單項(xiàng)
在activity中重寫onCreateOptionsMenu方法,并執(zhí)行g(shù)etMenuInflater.inflate方法關(guān)聯(lián)剛才的菜單文件
在activity中重寫onOptionsItemSelected方法,并在方法內(nèi)編寫菜單點(diǎn)擊之后的邏輯
所使用的工具:電腦
開發(fā)工具:eclipse for ?Android , Android ?Studio
用adapter 寫下拉菜單需要我們自己進(jìn)行自定義,具體步驟如下:
1、自定義類,類成員與需要顯示的字段一致;
public?class?Manufacture?{
private?String?name?;
public?Manufacture(String?name)?{
super();
this.name?=?name;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
}
2、自定義adapter并繼承自BaseAdapter實(shí)現(xiàn)相應(yīng)方法,下面是貼出的代碼示例:
public?class?MnufactureAdapter?extends?BaseAdapter{
private?ListManufacture?mList;
private?Context?context?;
//創(chuàng)建有參構(gòu)造,參數(shù)需要傳入兩個(gè)1.自定義類類型的List,上下文參數(shù)
public?MnufactureAdapter(ListManufacture?mList,?Context?context)?{
super();
this.mList?=?mList;
this.context?=?context;
}
//返回長度位所定義List的長度
@Override
public?int?getCount()?{
return?mList.size();
}
//返回位置為自定義list當(dāng)前位置
@Override
public?Object?getItem(int?position)?{
return?mList.get(position)
;
}
//返回條目的ID
@Override
public?long?getItemId(int?position)?{
return?position;
}
//這里getView需方法需要重點(diǎn)說明和注意:
@Override
public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{
//創(chuàng)建一個(gè)LayoutInflater并傳入上下文
LayoutInflater?linflater?=?LayoutInflater.from(context);
//添加自定義item布局到convertView;(item內(nèi)容和樣式通過自定義方式實(shí)現(xiàn))
convertView?=?linflater.inflate(R.layout.spinner_item_layout,?null);
//初始化Item中控件
TextView?textView?=(TextView)?convertView.findViewById(R.id.manufacture_list);
//設(shè)置控件顯示內(nèi)容
textView.setText(mList.get(position).getName());
return?convertView;
}
}
3、在activity中需要添加如下代碼:
//初始化布局文件中的spinner
Spinner??mSpinner?=?(Spinner)?findViewById(R.id.spinner1);
//初始化自定義的List,并往里面添加數(shù)據(jù)
ListManufacture??manufacture?=?new?ArrayListManufacture();
接著就是添加數(shù)據(jù),在項(xiàng)目中我是添加的從網(wǎng)絡(luò)上下載的數(shù)據(jù)解析之后進(jìn)行添加的,具體的添加方式根據(jù)具體需要進(jìn)行添加,我把自己的貼在下面供大家參考:
for(int?i?=?0;ilist.size();i++){
//添加數(shù)據(jù)源
manufacture.add(new?Manufacture(list.get(i).getName()));
}
//實(shí)例化一個(gè)之前自定義的adapter并向里面添加數(shù)據(jù)
MnufactureAdapter?madapter?=?new?MnufactureAdapter(manufacture,?ProductManageActivity.this);
參數(shù)說明:第一個(gè)參數(shù)是添加數(shù)據(jù)源后的List,第二個(gè)是當(dāng)前activity的上下文。
最后一步,向spinner里面添加數(shù)據(jù)源
mSpinner.setAdapter(madapter);
在UI中經(jīng)常會(huì)使用到下拉列表,在android控件中有兩個(gè)下拉列表控件:
在xml中添加控件的使用:
主題:
這些都沒有達(dá)到我要的效果:
android:entries // 傳入的是values文件夾下的arrayx.xml內(nèi)的數(shù)據(jù)
android:spinnerMode //顯示模式有popmenu和dialog兩種
android:prompt //當(dāng)顯示模式為dialog時(shí)生效,作用為顯示dialog的標(biāo)題內(nèi)容