下拉列表 (Spinner)

Spinner提供了从一个数据集合中快速选择一项值的办法。

有时有些数据是需要直接提供给用户,供用户选择,避免用户输入,从而提供一个下来列表。

默认情况下Spinner显示的是当前选择的值。

编码实现:

1.实例化Spinner组件

2.设置适配数组,供用户选择的数据

3.设置监听  setOnItemSelectedListener  实现 onItemSelected 方法获取用户选择项,setVisibility 方法设置当前显示项

public class MainActivity extends AppCompatActivity {

    private Spinner m_Spinner;
    private TextView m_TextView;
    //数据源
    private static String[] mStr = {"A型","B型","O型","AB型"};
    //适配器
    private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        m_Spinner = (Spinner) findViewById(R.id.Spinner);
        m_TextView = (TextView)findViewById(R.id.textView);
        //初始化适配器
        adapter = new ArrayAdapter<String> (MainActivity.this,android.R.layout.simple_list_item_1,mStr);
        //设置下拉列表的风格
        adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
        //设置适配器
        m_Spinner.setAdapter (adapter);
        //添加监听事件
        m_Spinner.setOnItemSelectedListener (new AdapterView.OnItemSelectedListener () {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                m_TextView.setText ("你的血型是:"+mStr[position]);
                //设置显示当前选择的项
                view.setVisibility (View.VISIBLE);
            }

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

            }
        });

    }
}

布局文件:

注意:默认布局Spinner 弹窗会遮挡Spinner组件,需设置    android:overlapAnchor="false" 

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="textdome.android.okl.com.spinner.MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!"/>

    <Spinner
        android:id="@+id/Spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:overlapAnchor="false"
        android:layout_gravity="center_horizontal"
        />

</LinearLayout>


猜你喜欢

转载自blog.csdn.net/zhu522959034/article/details/64922889