中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

控件(1)spinner

發布時間:2020-04-26 20:49:38 來源:網絡 閱讀:347 作者:乖寶翼 欄目:移動開發

Spinner位于 android.widget包下,每次只顯示用戶選中的元素,當用戶再次點擊時,會彈出選擇列表供用戶選擇,而選擇列表中的元素同樣來自適配器。Spinner是View類得一個子類。

控件(1)spinner

點擊選框之后:

控件(1)spinner


屬性:android:prompt:Spinner初始化時顯示的數據

方法:

setPrompt(CharSequence prompt):設置當Spinner對話框關閉時顯示的提示

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

setOnItemClickListener(AdapterView.OnItemClickListener l):當項被點擊時調用

onDetachedFromWindow():當Spinner脫離窗口時被調用。


示例:轉自http://blog.csdn.net/chenjinyu_tang/article/details/6587953

例子一:Spinner的基本實現方法

控件(1)spinner

步驟一:編寫Android XML文件

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

步驟二:源代碼

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

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

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

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

3)使用setOnItemSelectedListener()來設置Spinner的點擊觸發的callback函數,有onItemSelected和onNothingSelected兩個接口需要具體給出。

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是我們設置的第一個TextView widget,arg2就是元素的pos需要

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

例子二:Spinner的UI格式

步驟一:編寫Android XML文件

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

在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中,我們設置了prompt,根據@string在strings.xml中查找,prompt的內容為“太陽系行星:”在我們點擊展開Spinner中,我們可以看到在最上面增加了提示,如上圖所示。

步驟二:編寫源代碼

1)設置spinner的adapter,并導入數據,以及設置UI格式。

Spinner spin=(Spinner)findViewById(R.id.spinner4);
//createFromResouce將返回ArrayAdapter<CharSequence>,具有三個參數:
//第一個是conetxt,也就是application的環境,可以設置為this,也可以通過getContext()獲取.
//第二個參數是從data source中的array ID,也就是我們在strings中設置的ID號;
//第三個參數是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中我們設置了為展開的方式,android提供了兩種格式,當然我們也可以通過Android XML文件進行設置,如同ListView一樣,下圖分別是設置android.R.layout.simple_spinner_item和android.R.layout.simple_spinner_dropdown_item的顯示,一般而言,我們都會顯示前者。

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

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

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

2)設置回調函數

這里采用了一個類來描述回調處理

public class MyOnItemSelectedListener implements OnItemSelectedListener{
@Override
public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long arg3){
// 在這里我們復習一下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());來設置回調對象即可。

例子三:自定義格式和數據

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

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

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

ADD:自定義實現http://blog.csdn.net/jiangqq781931404/article/details/7285623


控件(1)spinner



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

枣庄市| 竹山县| 凤庆县| 新巴尔虎右旗| 长春市| 涿州市| 鄂州市| 宜君县| 德州市| 江川县| 六盘水市| 武冈市| 都江堰市| 丹江口市| 留坝县| 鹤壁市| 平顶山市| 巴彦淖尔市| 缙云县| 汽车| 宝鸡市| 固原市| 织金县| 宁南县| 南木林县| 美姑县| 房山区| 博野县| 胶州市| 宁波市| 寿阳县| 镇安县| 衡南县| 固阳县| 蓝田县| 定襄县| 华坪县| 彩票| 神池县| 湖南省| 双峰县|