安卓实现下拉列表框 【Spinner】

下拉列表框

引言:
别人写的东西往往不能全信,照着写出bug很正常,有些东西看来还是要自己摸索啊。下拉列表,要用到Spinner控件。
步骤一:
你需要在布局中声明这个控件。

<Spinner
                android:entries="@array/order"
                android:id="@+id/spinner"
                android:layout_width="32dp"
                android:layout_height="match_parent"
                android:layout_gravity="right" />

步骤二:
看到第一个属性了吗,这个属性是用来引入一个样式,就是列表的每一项。这个样式需要自己去定义,就是在values目录下定义一个xml文件:
在这里插入图片描述
文件中写入样式

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="order">
        <item>纵向排列</item>
        <item>瀑布流</item>
    </string-array>
</resources>

name属性用于在布局中引入样式。
步骤三:
样式都已经搞定了,是不是该让它发挥作用呢,设置一下点击事件吧。我这个例子呢,是在碎片中实现的,活动中会更简单。

public class Fragment2 extends Fragment {
    private Spinner myspinner;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.lay2,container,false);
        Intent intent=new Intent(getActivity(),PicActivity.class);
        startActivity(intent);
        myspinner=(Spinner)view.findViewById(R.id.spinner);
        myspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String select_item=parent.getItemAtPosition(position).toString();
                switch (select_item){
                    case "纵向排列":
                        Toast.makeText(getActivity(),"已设置为纵向排列",Toast.LENGTH_SHORT).show();
                        break;
                    case "瀑布流":
                        Toast.makeText(getActivity(),"已设置为瀑布流排列",Toast.LENGTH_SHORT).show();
                        break;
                    default:
                        break;
                }
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
        return view;
    }
}

其实就是重写了两个函数,当你写完
myspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener());
alt+enter就会让你重写函数,强大的Android Studio。

发布了43 篇原创文章 · 获赞 56 · 访问量 5121

猜你喜欢

转载自blog.csdn.net/tran_sient/article/details/102231893
今日推荐