控件(1)spinner-創(chuàng)新互聯(lián)

Spinner位于 android.widget包下,每次只顯示用戶選中的元素,當(dāng)用戶再次點(diǎn)擊時(shí),會(huì)彈出選擇列表供用戶選擇,而選擇列表中的元素同樣來自適配器。Spinner是View類得一個(gè)子類。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),南雄企業(yè)網(wǎng)站建設(shè),南雄品牌網(wǎng)站建設(shè),網(wǎng)站定制,南雄網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,南雄網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

控件(1)spinner

點(diǎn)擊選框之后:

控件(1)spinner

屬性:android:prompt:Spinner初始化時(shí)顯示的數(shù)據(jù)

方法:

setPrompt(CharSequence prompt):設(shè)置當(dāng)Spinner對(duì)話框關(guān)閉時(shí)顯示的提示

performClick():如果它被定義就調(diào)用此視圖的OnClickListener

setOnItemClickListener(AdapterView.OnItemClickListener l):當(dāng)項(xiàng)被點(diǎn)擊時(shí)調(diào)用

onDetachedFromWindow():當(dāng)Spinner脫離窗口時(shí)被調(diào)用。

示例:轉(zhuǎn)自http://blog.csdn.net/chenjinyu_tang/article/details/6587953

例子一:Spinner的基本實(shí)現(xiàn)方法

控件(1)spinner

步驟一:編寫Android XML文件

<LinearLayout …… >
<TextView android:id="@+id/spinner_label" …… />
<!-- 經(jīng)過我們的測試android:drawSelectorOnTop="true | false"不起作用,因此此參數(shù)可以不設(shè)置 -->
<Spinner android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>

步驟二:源代碼

1)設(shè)置Spinner之中的元素內(nèi)容,采用了ArrayAdapter來描述,并通過setApdater()來設(shè)置adapter

private String[] items= {"lorem", "ipsum", "dolor", "sit", "amet",….
ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items); //第二個(gè)參數(shù)表示spinner沒有展開前的UI類型
spin.setAdapter(aa); //之前已經(jīng)通過Spinner spin = (Spinner) findViewById(R.id.spinner);來獲取spin對(duì)象

2)設(shè)置spinner展開的方式,在上面,我們將通過設(shè)置ArrayAdapter的第二個(gè)參數(shù),設(shè)置了spinner沒有展開前的UI格式,simple_spinner_item是textview的label方式,而simple_spinner_dropdown_item這是點(diǎn)擊圓圈選擇方式。在這個(gè)例子中,我們將展開方式設(shè)置為點(diǎn)擊圓圈選擇,如圖所示。關(guān)于格式,我們會(huì)在第二個(gè)例子中進(jìn)行試驗(yàn)。

aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

3)使用setOnItemSelectedListener()來設(shè)置Spinner的點(diǎn)擊觸發(fā)的callback函數(shù),有onItemSelected和onNothingSelected兩個(gè)接口需要具體給出。

public class SpinnerTest extends Activity implements OnItemSelectedListener{

protected void onCreate(Bundle savedInstanceState) {
……
spin.setOnItemSelectedListener(this);
… …
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
label.setText(items[arg2]); //label是我們?cè)O(shè)置的第一個(gè)TextView widget,arg2就是元素的pos需要

}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
label.setText("");
}
}

例子二:Spinner的UI格式

步驟一:編寫Android XML文件

在例子來自Android官方網(wǎng)站的tutorial的例子。我們下載SDK的文檔中也帶有,可以本地查看。這里我們希望item的元素內(nèi)容設(shè)置都在XML中定義,方便修改以及多國語言版本的實(shí)現(xiàn)。

在strings.xml中

<resources>
<string name="planet_prompt">太陽系行星:</string>
<string-array name="planets_arry">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>

控件(1)spinner

在layout的xml中:

<LinearLayout … >
<TextView … />
<Spinner android:id="@+id/spinner4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/planet_prompt" />
</LinearLayout>

在Spinner中,我們?cè)O(shè)置了prompt,根據(jù)@string在strings.xml中查找,prompt的內(nèi)容為“太陽系行星:”在我們點(diǎn)擊展開Spinner中,我們可以看到在最上面增加了提示,如上圖所示。

步驟二:編寫源代碼

1)設(shè)置spinner的adapter,并導(dǎo)入數(shù)據(jù),以及設(shè)置UI格式。

Spinner spin=(Spinner)findViewById(R.id.spinner4);
//createFromResouce將返回ArrayAdapter<CharSequence>,具有三個(gè)參數(shù):
//第一個(gè)是conetxt,也就是application的環(huán)境,可以設(shè)置為this,也可以通過getContext()獲取.
//第二個(gè)參數(shù)是從data source中的array ID,也就是我們?cè)趕trings中設(shè)置的ID號(hào);
//第三個(gè)參數(shù)是spinner未展開的UI格式
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this,R.array.planets_arry, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);

在ArrayApdater中我們?cè)O(shè)置了為展開的方式,android提供了兩種格式,當(dāng)然我們也可以通過Android XML文件進(jìn)行設(shè)置,如同ListView一樣,下圖分別是設(shè)置android.R.layout.simple_spinner_item和android.R.layout.simple_spinner_dropdown_item的顯示,一般而言,我們都會(huì)顯示前者。

控件(1)spinner控件(1)spinner

如果我們不通過setDropDownViewResource進(jìn)行設(shè)置,則展開的方式缺省同未展開的方式,否則必須進(jìn)行設(shè)置,下圖分別是設(shè)置android.R.layout.simple_spinner_item和android.R.layout.simple_spinner_dropdown_item。可以看出在下面左邊的途中,展開和未展開的設(shè)置是不一樣的。

控件(1)spinner控件(1)spinner

2)設(shè)置回調(diào)函數(shù)

這里采用了一個(gè)類來描述回調(diào)處理

public class MyOnItemSelectedListener implements OnItemSelectedListener{
@Override
public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long arg3){
// 在這里我們復(fù)習(xí)一下Toast的用法
Toast.makeText(parent.getContext(),
"The planet is "+ parent.getItemAtPosition(pos).toString(),
Toast.LENGTH_LONG).show();
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
//nothing to do
}
}

在程序中使用spin.setOnItemSelectedListener(new MyOnItemSelectedListener());來設(shè)置回調(diào)對(duì)象即可。

例子三:自定義格式和數(shù)據(jù)

在上面的例子中,為展開和展開后的UI格式采用了Android自定義的格式,都可以自行定義。

ArrayAdapter adapter = new ArrayAdapter(this,R.layout.item,R.id.textView,list);

在上面的例子中,我們使用某個(gè)ArrayAdapter的構(gòu)造函數(shù),其中第一個(gè)參數(shù)是context,第二個(gè)參數(shù)指定下來菜單的每個(gè)條目的樣式,第三個(gè)參數(shù)指定了在每個(gè)條目樣式中用于顯示數(shù)據(jù)的TextView的Id,第四個(gè)參數(shù)為列表的數(shù)據(jù)來源(可以是任何格式,toString()就是相應(yīng)的賦值)。

ADD:自定義實(shí)現(xiàn)http://blog.csdn.net/jiangqq781931404/article/details/7285623

控件(1)spinner

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標(biāo)題名稱:控件(1)spinner-創(chuàng)新互聯(lián)
瀏覽地址:http://muchs.cn/article30/dcjdso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站維護(hù)、品牌網(wǎng)站建設(shè)商城網(wǎng)站、網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)