編輯:關於Android編程
Spinner下拉列表
該布局對應的關系圖:
常用屬性:android:entries(指定spinner要顯示的字符串資源。必須是在strings資源文件中定義的字符串資源)android:spinnerMode(spinner的模式,枚舉值有兩個值dialog彈窗顯示和dropdown下拉顯示)android:dropDownWidth(下拉框的寬度,單位通常是dp)android:prompt(當spinnerMode的值是dialog時,彈出的對話框式的下列列表的提示。如果
spinnerMode的值是dropdown時沒有效果。注意:此處的值不能直接使用直接字符串,
必須使用引用(字符串資源))
1.通過entries設置數據項,在values文件夾下的strings中添加數據的值
在strings.xml中添加一組array數據項,然後通過在entries中設置就可以設置對應的值
<Spinner android:layout_width="match_parent" android:entries="@array/data"//資源文件設置數據 android:layout_height="wrap_content"> </Spinner>
2.設置android:spinnerMode:
<Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:entries="@array/data" android:spinnerMode="dialog" android:layout_height="wrap_content"> </Spinner>
值為dialog的顯示為彈框顯示
值如果為dropdown的顯示如下:
android:dropDownWidth設置下拉寬度
<Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:entries="@array/data" android:spinnerMode="dropdown" android:dropDownWidth="70dp" android:layout_height="wrap_content"> </Spinner>
效果如下圖:
數據源的獲取方式:通過ArrayAdapter適配器設置數據數據>
什麼是適配器:將控件在加載數據過程中的同樣的部分 抽取為代碼,每次加載的時候都調用這部分代碼,生成
要返回的內容,類似於模具
關於ArrayAdapter簡單介紹下:
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,data);
關於ArrayAdapter構造方法的說明:
1、ArrayAdapter(context, resource, objects)
參數一:上下文對象
參數二:布局文件的id,注意該布局文件有且只能有一個TextView標簽
參數三:原始數據,List集合或數組都可以。
2、ArrayAdapter(context, resource, textViewResourceId, objects)
參數一:上下文對象
參數二:布局文件的id,注意該布局文件中至少有一個TextView標簽
參數三:參數二布局文件中要顯示數據的TextView的id
參數四:原始數據,List集合或數組都可以。
public class MainActivity extends AppCompatActivity { private String[] data; private List<String> data1; private Spinner spinner; private ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.spinner); spinner = (Spinner)findViewById(R.id.spinner); data = getResources().getStringArray(R.array.data); data1 = new ArrayList<>(); for(int i = 1; i < 10; i++){ data1.add("這是第" + i +"個"); } //data可以修改為data1,數據可以是數組也可以是集合 adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,data); spinner.setAdapter(adapter); } }
監聽事件
對於Spinner使用的監聽事件為:setOnItemSelectedListener(OnItemSelectedListener listener)
public class SpinnerActivity extends Activity implements OnItemSelectedListener { /** * 當item被選中時,會調用此方法 */ public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { // An item was selected. You can retrieve the selected item using // parent.getItemAtPosition(pos) } /** * 當數據項的值設置為空時,就會調用此方法,通過調用adapter.clear()方法清空數據,並且刷新界面 * 時,會調用次方法 */ public void onNothingSelected(AdapterView<?> parent) { // Another interface callback } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
前面的博客中,我們已經分析過,當Android中的進程要使用電量時,需要向PMS申請WakeLock;當進程完成工作後,需要釋放對應的WakeLock。PMS收到申請和釋
一、首先說明:藍牙通信必須用手機測試,因為avd裡沒有相關的硬件,會報錯! 好了,看看最後的效果圖: 二、概述: 1.判斷是否支持BluetoothBluet
樂視pro3支持NFC嗎? 根據樂視官方介紹,樂視pro3支持全功能NFC,支持讀卡、寫卡、卡模擬及P2P模式等豐富應用。用戶使用樂視pro3可以完成公交
有時候,為了實現項目中的需求,完成設計好的用戶交互體驗,不的不把這些View重新改造成自己想要的效果。Android原生的ListView是不支持左右滑動的,但是看到微信