繁体   English   中英

如何在Spinner的页脚中添加按钮

[英]How to add button to the footer of Spinner

我有一个微调器,我想在微调器的末尾添加一个“取消”按钮,以便当用户单击它时,微调器中的选定元素不会更改。

XML文件

<Spinner
            android:id="@+id/s_signin_type"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="15dip"
            android:layout_marginTop="5dip"
            android:prompt="@string/s_type" />

Java活动

Spinner s_type;
s_type = (Spinner) findViewById(R.id.s_signin_type);
        ArrayAdapter<String> adapterType = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, Data.types);
        adapterType
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s_type.setAdapter(adapterType);

在此处输入图片说明

非常感谢。

我设法通过覆盖ArrayAdapter中的getDropDownView()方法将按钮添加到微调器。 它是这样的(我省略了视图重用,...):

List<String> items = new ArrayList<String>();
//items I want to display
items.add("1");
items.add("2");
//add placeholder for button
items.add(null);
...

ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(
                getActivity(), android.R.layout.simple_spinner_item, items) {

            @Override
            public View getDropDownView(int position, View convertView,
                    ViewGroup parent) {
                //create view for placeholder
                if (getItem(position) == null) {
                    Button b = new Button(getActivity());
                    b.setText("Test");                  
                    return b;
                }
                //create view for standard spinner item
                return LayoutInflater.from(this.getContext()).inflate(
                        android.R.layout.simple_spinner_dropdown_item, parent,
                        false);
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM