android 下拉选择框Spinner
来源:互联网 发布:淘宝详情页图片下载器 编辑:程序博客网 时间:2024/05/16 16:55
建立Spinner的适配器
- public class SpinnerAdapter extends BaseAdapter{
-
- private Context mContext;
- private Map<String, String> ports;
- private List<String> keys = new ArrayList<String>();
- public SpinnerAdapter(Context _mContext,Map<String, String> _ports)
- {
- mContext = _mContext;
- ports = _ports;
- for (String str : _ports.keySet()) {
- keys.add(str);
- }
- }
-
- @Override
- public int getCount() {
-
- return keys.size();
- }
-
- @Override
- public Object getItem(int position) {
-
- return keys.get(position);
- }
-
- @Override
- public long getItemId(int position) {
-
- return position;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
-
- LayoutInflater _LayoutInflater=LayoutInflater.from(mContext);
- convertView=_LayoutInflater.inflate(R.layout.tran_spinner_item, null);
- if(convertView!=null)
- {
- TextView _TextView1=(TextView)convertView.findViewById(R.id.ports_name);
- TextView _TextView2=(TextView)convertView.findViewById(R.id.ports_id);
- _TextView1.setText(ports.get(keys.get(position)));
- _TextView2.setText(keys.get(position));
- }
- return convertView;
- }
-
-
-
-
-
-
- public static void setSpinnerItemSelectedByValue(Spinner spinner,String value){
- SpinnerAdapter apsAdapter= (SpinnerAdapter) spinner.getAdapter();
- int k= apsAdapter.getCount();
- for(int i=0;i<k;i++){
- if(value.equals(apsAdapter.getItemValue(i))){
- spinner.setSelection(i,true);
- break;
- }
- }
- }
-
- public String getItemValue(int position)
- {
- return ports.get(keys.get(position));
- }
- }
tran_spinner_item layout
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/ports_name"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:textSize="20sp" />
- <TextView
- android:id="@+id/ports_id"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:visibility="gone"/>
- </LinearLayout>
生成spinner- private void createSpinner(Activity _mActivity,TableRow tr,TableItemNameValueShrink tt)
- {
- TableRow.LayoutParams trlpfe = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
- TableRow.LayoutParams.WRAP_CONTENT);
- trlpfe.setMargins(0, 9, 0, 0);
- Spinner sp = new Spinner(_mActivity);
- sp.setLayoutParams(trlpfe);
-
- SpinnerAdapter _MyAdapter=new SpinnerAdapter(_mActivity, portsmap);
-
- sp.setAdapter(_MyAdapter);
- SpinnerAdapter.setSpinnerItemSelectedByValue(sp,tt.value.toString());
- tr.addView(sp);
- }
http://www.open-open.com/lib/view/open1330651497624.html
http://blog.csdn.net/ailiandeziwei/article/details/9164219
http://www.oschina.net/question/54100_33274
选中默认值
- public static void setSpinnerItemSelectedByValue(Spinner spinner,String value){
- SpinnerAdapter apsAdapter= (SpinnerAdapter) spinner.getAdapter();
- int k= apsAdapter.getCount();
- for(int i=0;i<k;i++){
- if(value.equals(apsAdapter.getItemValue(i))){
- spinner.setSelection(i,true);
- break;
- }
- }
- }
-
- public String getItemValue(int position)
- {
- return ports.get(keys.get(position));
- }
http://www.cnblogs.com/over140/archive/2010/09/25/1834469.html
http://bbs.csdn.net/topics/390597226