使用SimpleCursorAdapter将添加按钮放置到android选择器

使用SimpleCursorAdapter将添加按钮放置到android选择器,android,ios,button,uiactionsheet,picker,Android,Ios,Button,Uiactionsheet,Picker,我想显示一个Android微调器,它显示来自SQLite数据库的数据 但是,用户应该能够将新项目添加到此微调器 在iPhone/iOS上,我使用ActionSheetPicker来实现这个目标。看起来是这样的: 如何使用Android实现这一点?不确定它是否适用于游标适配器,但 以下代码的作用与iOS上的UIPicker大致相同: 该代码执行以下操作: 创建/获取微调器的数据 在“活动”上使用按钮而不是微调器 创建一个AlertDialog(弹出窗口),其中显示微调器和添加按钮 添加按钮创建另一

我想显示一个Android微调器,它显示来自SQLite数据库的数据

但是,用户应该能够将新项目添加到此微调器

在iPhone/iOS上,我使用ActionSheetPicker来实现这个目标。看起来是这样的:


如何使用Android实现这一点?

不确定它是否适用于游标适配器,但
以下代码的作用与iOS上的UIPicker大致相同:

该代码执行以下操作:

  • 创建/获取微调器的数据
  • 在“活动”上使用按钮而不是微调器
  • 创建一个AlertDialog(弹出窗口),其中显示微调器和添加按钮
  • 添加按钮创建另一个带有编辑文本(文本字段)的弹出窗口

    ArrayList items=new ArrayList();
    项目。添加(“一”);
    项目。添加(“两”);
    项目。添加(“三”);
    最终ArrayAdapter适配器=新的ArrayAdapter(此,
    android.R.layout.simple\u微调器\u下拉菜单\u项,项);
    最终按钮selectBtn=(按钮)findViewById(R.id.buttonCountry);
    选择btn.setOnClickListener(新建视图.OnClickListener(){
    @凌驾
    public void onClick(@SuppressWarnings(“未使用”)视图v){
    新建AlertDialog.Builder(主)
    .setTitle(“请选择一个国家”)
    .setPositiveButton(“添加国家”,新的DialogInterface.OnClickListener(){
    @凌驾
    public void onClick(DialogInterface dialog,int which){
    最终编辑文本视图=新编辑文本(主);
    新建AlertDialog.Builder(主)
    .setTitle(“请输入名称”)
    .setPositiveButton(R.string.ok,新建DialogInterface.OnClickListener(){
    @凌驾
    public void onClick(DialogInterface dialog,int which){
    add(view.getText().toString());
    选择btn.setText(view.getText().toString());
    }
    })
    .setNegativeButton(“取消”,null)
    .setView(视图)
    .show();
    }
    })
    .setAdapter(适配器,新的DialogInterface.OnClickListener(){
    @凌驾
    public void onClick(DialogInterface dialog,int which){
    选择btn.setText(adapter.getItem(which));
    dialog.dismise();
    }
    }).create().show();
    }
    });
    
  • 以下是结果图片:

    活动:

    带有微调器和按钮的AlertDialog:

    带有文本输入的AlertDialog:

    你在说什么?是的,在Android中它被称为Spinner,并且有一个如何使用和填充它的示例-你期望现成的解决方案吗?例如,这是唯一的解决方案吗??
    ArrayList<String> items = new ArrayList<String>();
    items.add("One");
    items.add("Two");
    items.add("Three");
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_dropdown_item, items);
    
    final Button selectBtn = (Button) findViewById(R.id.buttonCountry);
    selectBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(@SuppressWarnings("unused") View v) {
            new AlertDialog.Builder(main)
            .setTitle("Please choose a country")
            .setPositiveButton("Add Country", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    final EditText view = new EditText(main);
                    new AlertDialog.Builder(main)
                        .setTitle("Please enter a name")
                        .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                adapter.add(view.getText().toString());
                                selectBtn.setText(view.getText().toString());
                            }
                        })
                        .setNegativeButton("cancel", null)
                        .setView(view)
                        .show();
                }
            })
            .setAdapter(adapter, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    selectBtn.setText(adapter.getItem(which));
                    dialog.dismiss();
                }
            }).create().show();
        }
    });