Android学习笔记_72_Spinner的用法

一、普通

 1、

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:gravity="left"
    android:paddingLeft="8dip"
    android:singleLine="true"
    android:textSize="12sp"
    android:textStyle="bold"
    android:textColor="@color/gsdk_black"
    android:text="sdf" />

 

2

private String[] method = null;
ArrayAdapter<String> methodAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, method);
methodSpinner = (Spinner) findViewById(R.id.spinner_recharge_type);
moneyAdapter
.setDropDownViewResource(android.R.layout.select_dialog_item); methodSpinner.setAdapter(methodAdapter);

 二、自定义spinner:

1、配置文件:

<?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="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tv_spinner_id"
        android:layout_width="60dp"
        android:layout_height="80dp"
        android:visibility="gone" />

    <TextView
        android:id="@+id/tv_spinner_name"
        style="?android:attr/spinnerDropDownItemStyle"
        android:layout_width="match_parent"
        android:layout_height="35dip"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        android:textColor="#000"
        android:textSize="@dimen/font_body" />

</LinearLayout>

2、填充数据

List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
                    for (Project project : linkedList) {
                        Map<String, Object> map = new HashMap<String, Object>();
                        map.put("name", project.getName());
                        map.put("id", project.getId());
                        data.add(map);
                    }                    
                    searchAdapter = new SimpleAdapter(PurchaseActivity.this, data,
                             R.layout.purchase_search_spinner, new String[]{"id","name"},
                             new int[]{R.id.tv_spinner_id,R.id.tv_spinner_name});
                    searchSpinner.setAdapter(searchAdapter);

3、点击事件:注意点击事件是OnItemSelectedListener而不是OnItemClickListener.

   private class SearchSpinnerItemListener implements OnItemSelectedListener{

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            Spinner spinner = (Spinner) parent;
            Map<String, Object> projectMap = (Map<String, Object>) spinner.getItemAtPosition(position);
            int pid = Integer.valueOf(projectMap.get("id")+"");
            String pname = (String) projectMap.get("name");
            Log.i("Purchase","pid: "+pid+" pname: "+pname);
            
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
             
    }

 

 

 

posted @ 2014-05-05 19:02  若 ♂ 只如初见  阅读(481)  评论(0编辑  收藏  举报