Android官方下拉选择控件Spinner

来源:互联网 发布:手机淘宝怎么改价格 编辑:程序博客网 时间:2024/06/05 19:45

  

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="horizontal"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.yechaoa.spinnerdemo.MainActivity">    <Spinner        android:id="@+id/spinner1"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:entries="@array/letter" />  指定数据源    <Spinner        android:id="@+id/spinner2"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1" />    <Spinner        android:id="@+id/spinner3"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1" /></LinearLayout>


MainActivity.java

package com.yechaoa.spinnerdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.BaseAdapter;import android.widget.Spinner;import android.widget.TextView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{    private Spinner spinner1;    private Spinner spinner2;    private Spinner spinner3;    private String[] list1;    private ArrayList<String> list2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initData();        initListener();    }    /**     * 初始化控件     */    private void initView() {        spinner1 = (Spinner) findViewById(R.id.spinner1);        spinner2 = (Spinner) findViewById(R.id.spinner2);        spinner3 = (Spinner) findViewById(R.id.spinner3);    }    /**     * 初始化数据     */    private void initData() {        list1 = new String[]{"1","2","3"};        ArrayAdapter<String> adapter=new ArrayAdapter<>(this,android.R.layout.simple_spinner_item, list1);        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        spinner2.setAdapter(adapter);        list2 = new ArrayList<>();        list2.add("Android");        list2.add("IOS");        list2.add("H5");        spinner3.setAdapter(new MyAdapter());    }    /**     * 初始化监听器     */    private void initListener() {        spinner1.setOnItemSelectedListener(this);        spinner2.setOnItemSelectedListener(this);        spinner3.setOnItemSelectedListener(this);    }    /**     *     * @param parent parent是你当前所操作的Spinner     */    @Override    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {        switch (parent.getId()){            case R.id.spinner1:                String[] letter = getResources().getStringArray(R.array.letter);                Log.i("spinner1点击------",letter[position]);                break;            case R.id.spinner2:                Log.i("spinner2点击------",list1[position]);                break;            case R.id.spinner3:                Log.i("spinner3点击------",list2.get(position));                break;        }    }    /**     * 没有数据的时候执行     */    @Override    public void onNothingSelected(AdapterView<?> parent) {    }    /**     * 自定义的Adapter     */    private class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return list2.size();        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return 0;        }        @Override        public View getView(int position, View convertView, ViewGroup viewGroup) {            ViewHolder holder ;            if(convertView==null){                convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_text, viewGroup, false);                holder = new ViewHolder();                holder.itemText= (TextView) convertView.findViewById(R.id.item_text);                convertView.setTag(holder);            }else{                holder = (ViewHolder) convertView.getTag();            }            holder.itemText.setText(list2.get(position));            return convertView;        }    }    class ViewHolder {        TextView itemText;    }}


Demo:https://github.com/bige-ye/SpinnerDemo


原创粉丝点击