Android Spinner组件的使用方法

Spinner是什么呢,其实就是我们常见的下拉框,比如:

首先,我们要创建一个Spinner,才能在Spinner中添加我们想要的元素,在xml文件中:

<Spinner
        android:id="@+id/Spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
</Spinner>

<!--事件响应时展示的图片 !-->
    <ImageButton
        android:id="@+id/turtleImg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:src="@drawable/mike"/>

接着,我们要写我们的java程序了, 主要是onCreate()方法:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        List<String> turtleList = new ArrayList<>();
        turtleList.add("Don");
        turtleList.add("Mike");
        turtleList.add("Leo");
        turtleList.add("Raph");
        Spinner spinner = findViewById(R.id.Spinner);
        // 为下拉列表定义一个适配器,使用到上面定义的turtleList
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, turtleList);
        // 为适配器设置下拉列表下拉时的菜单样式,有好几种样式,请根据喜好选择
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // 将适配器添加到下拉列表上
        spinner.setAdapter(adapter);
        // 为下拉框设置事件的响应
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            /**
             *
             * @param adapterView
             * @param view   显示的布局
             * @param i      在布局显示的位置id
             * @param l      将要显示的数据
             */
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                ArrayAdapter<String> adapter = (ArrayAdapter<String>) adapterView.getAdapter();
                ImageButton turtleImaBtn = findViewById(R.id.turtleImg);
                if(adapter.getItem(i).equals("Don")){
                    turtleImaBtn.setImageResource(R.drawable.don);
                }
                else if(adapter.getItem(i).equals("Mike")){
                    turtleImaBtn.setImageResource(R.drawable.mike);
                }
                else if(adapter.getItem(i).equals("Leo")){
                    turtleImaBtn.setImageResource(R.drawable.leo);
                }
                else if(adapter.getItem(i).equals("Raph")){
                    turtleImaBtn.setImageResource(R.drawable.raph);
                }
            }

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

            }
        });

    }

最后我们运行结果,如图所示:

原文地址:https://www.cnblogs.com/leavescy/p/7809953.html