Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将按钮添加到微调器的页脚_Android_Android Layout_Android Ui_Android Spinner_Android Button - Fatal编程技术网

Android 如何将按钮添加到微调器的页脚

Android 如何将按钮添加到微调器的页脚,android,android-layout,android-ui,android-spinner,android-button,Android,Android Layout,Android Ui,Android Spinner,Android Button,我有一个微调器,我想在微调器的末尾添加一个“取消”按钮,这样当用户单击它时,微调器中的选定元素不会改变 xml Java活动 微调器s_型; s_类型=(微调器)findViewById(R.id.s_符号类型); ArrayAdapter适配器类型=新的ArrayAdapter(此, android.R.layout.simple\u微调器\u项目、数据、类型); 适配器类型 .setDropDownViewResource(android.R.layout.simple\u微调器\u下拉

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

xml

Java活动
微调器s_型;
s_类型=(微调器)findViewById(R.id.s_符号类型);
ArrayAdapter适配器类型=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项目、数据、类型);
适配器类型
.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
s_类型。设置适配器(适配器类型);


非常感谢。

我通过重写ArrayAdapter中的getDropDownView()方法,成功地将按钮添加到微调器中。它是这样的(我省略了视图重用,…):

List items=new ArrayList();
//我要显示的项目
项目。添加(“1”);
项目。添加(“2”);
//为按钮添加占位符
items.add(空);
...
ArrayAdapter itemsAdapter=新的ArrayAdapter(
getActivity(),android.R.layout.simple\u微调器\u项目,项目){
@凌驾
公共视图getDropDownView(int位置,视图转换视图,
视图组(父级){
//为占位符创建视图
if(getItem(position)==null){
按钮b=新按钮(getActivity());
b、 setText(“测试”);
返回b;
}
//为标准微调器项创建视图
返回LayoutInflater.from(this.getContext()).flate(
android.R.layout.simple\u微调器\u下拉列表\u项,父项,
假);
}

为什么不让用户简单地用后退按钮关闭微调器?@Luksprog我真的很喜欢使用取消按钮,它更方便用户使用,而且我有一个按钮不可触摸的设备,许多用户都有,因此按下后退按钮比触摸更难。请参阅
<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" />
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);
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);
            }