2013-08-30 118 views
0

我想顯示一個顯示來自SQLite數據庫的數據的Android Spinner。使用SimpleCursorAdapter將添加按鈕添加到Android選取器

用戶應該能夠將新項目添加到此微調器。

在iPhone/iOS上,我使用ActionSheetPicker來實現此目標。它看起來像這樣:iPhone ActionSheetPicker with Add button

如何使用Android進行此操作?

+0

你說的是[微調](http://developer.android.com/guide/topics/ui/controls/spinner.html)? –

+0

是的,在Android中叫做Spinner –

+0

還有一個如何使用它並填充它的例子 - 你期望現成的解決方案嗎? –

回答

0

不知道,如果它與一個CursorAdapter但
下面的代碼達到同樣的效果作爲UIPicker在iOS上:

代碼執行以下操作:

  1. 創建/獲取Spinner的數據
  2. 在活動中使用按鈕代替Spinners
  3. 創建一個AlertDialog(彈出窗口),顯示Spinner和一個附加的按鈕
  4. 該加載按鈕創建具有的EditText(文本字段)另一個彈出

    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(); 
        } 
    }); 
    

以下是所得的圖片:

活動:
Activity

AlertDialog with Spinner and Button:
AlertDialog with Spinner and Button

AlertDialog與文本輸入:
AlertDialog with text input