---恢復內容開始---
一、前段代碼
<Spinner android:id="@+id/spin" android:paddingTop="10px" android:layout_width="fill_parent" android:layout_height="50sp"/> <Button android:id="@+id/addList" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加" />
二、接下來新建一個下拉列表的視圖資源,即每個Item的TextView,我們把它命名為dropdown.xml,我們把它放到drawable中,代碼為:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tv1" android:layout_width="fill_parent" android:layout_height="20sp" android:singleLine="true" style="?android:attr/spinnerDropDownItemStyle" />
三、創建Adapter
這里介紹下兩個函數:
1.ArrayAdapter.ArrayAdapter(Context context,int textViewResourcId,List<String> objects)
我們可以通過它創建新的Adapter對象,這里需要三個參數:
(1)context上下文關系,就是這個Adapter屬于哪個Activity,屬于哪個應用程序。
(2)textViewResourcId TextView的資源id
(3) 最后一個參數是你要向下拉列表中添加的數據,可以是一個靜態的String數組,也可以是一個動態的List<String>;
2.AdapterView.setOnItemSelectedListener(OnItemSelectedListener listener),使用這個方法為Spinner對象設置監聽器。這里參數是OnItemSelectedListener 接口,實現這個接口需要重寫兩個方法:
(1)public void onItemSelected(AdapterView<?> parent, View view,int position, long id)
這個方法中可以完成當選項被選中時要做的處理。四個參數的含義:
- AdapterView<?> parent,這個類似context,只是范圍比較下,指你當前操作的AdapterView
- View view ,這個參數是你具體單擊的那個TextView對象
- int position 這個參數的意思是你單擊的那個view在整個AdaterView中的位置
- long id 單擊view的id
(2)public void onNothingSelected(AdapterView<?> parent)
這個回調函數在AdapterView中沒有選項時調用。
完整代碼如下:
private Spinner spinner; private TextView tv; private ArrayAdapter<String> adapter; private static final String[] years = { "小于1年", "1年-3年", "3年-5年", "5年以上" }; private ArrayList<String> array = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } spinner = (Spinner) findViewById(R.id.spin); tv = (TextView) findViewById(R.id.textView1); for (int i = 0; i < years.length; i++) { array.add(years[i]); } adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, array); adapter.setDropDownViewResource(R.drawable.dropdown); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // TODO 自動生成的方法存根 String seleted = array.get(position); tv.setText(seleted); parent.setVisibility(View.VISIBLE); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO 自動生成的方法存根 tv.setText("您沒有選擇"); } });
---恢復內容結束---
文章列表