Android(安卓)Spinner
16lz
2021-12-04
1)实现效果
2)关键代码
package com.example.test6;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.widget.*;import android.view.*;public class MainActivity extends Activity {private Spinner citySpinner=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);citySpinner=(Spinner)findViewById(R.id.citySpinner);/*生成List<KeyValue>*/List<KeyValue> cities=new ArrayList<KeyValue>();cities.add(new KeyValue(1, "上海"));cities.add(new KeyValue(2, "深圳"));cities.add(new KeyValue(3, "广州"));cities.add(new KeyValue(4, "杭州"));cities.add(new KeyValue(5, "苏州"));/*将List<KeyValue>绑定给Spinner*/ArrayAdapter<KeyValue> adapter=new ArrayAdapter<KeyValue>(this,android.R.layout.simple_spinner_item,cities);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);citySpinner.setAdapter(adapter);citySpinner.setSelection(cities.size()-1);citySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){public void onItemSelected(AdapterView<?> parent, View view, int position, long id){int key=((KeyValue)parent.getSelectedItem()).getKey();String value=((KeyValue)parent.getSelectedItem()).getValue();}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}class KeyValue {public KeyValue(){}public KeyValue(int _key, String _value){this.key=_key;this.value=_value;}private int key;private String value;/*为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()*/@Overridepublic String toString() { return getValue();}public int getKey() {return key;}public void setKey(int key) {this.key = key;}public String getValue() {return value;}public void setValue(String value) {this.value = value;}}
3)如果List<KeyValue>是从数据库中获取那么可以参考一下获取方式
/*查询数据, 返回key-value List对象*/public List<KeyValue> queryKeyValueList(String whereString){List<KeyValue> items=new ArrayList<KeyValue>();Cursor cursor=query(whereString);if(cursor.getCount()>0){while(cursor.moveToNext()){KeyValue item=new KeyValue();item.setKey(cursor.getInt(cursor.getColumnIndex("_id")));item.setValue(cursor.getString(cursor.getColumnIndex("description")));items.add(item);}}return items;}
更多相关文章
- 类和 Json对象
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- android calendar的使用
- Android,机器狗应用
- 获取Android(安卓)Device的信息
- Android适配器之------BaseAdapter(例子)
- 九宫格
- android获取本地视频路径
- Android(安卓)中的 Looper 对象