2012-07-26 82 views
3

我成功地從旋轉得到一個值,並將其存儲在DATABSE,但回報,我無法設置TextSpinner。我該怎麼做,像EditText的其他功能?如何在Android微調器中設置數據?

這是我的代碼:

public class MainActivity_spinner extends Activity 
{ 
    Button save; 
    Button show; 
    public void onCreate(Bundle savedInstanceState) 
    { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      String[] items = new String[] {" ","Male","Female"}; 
      final Spinner gender =(Spinner)findViewById(R.id.sex); 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, items); 
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      gender.setAdapter(adapter); 
      save=(Button)findViewById(R.id.save); 
      show=(Button)findViewById(R.id.show); 
      //----------------------------------------------------------------  
      save.setOnClickListener(new Button.OnClickListener() { 
       public void onClick(View view){ 
        ContentValues values = new ContentValues(); 
        values.put("sex",gender.getSelectedItem().toString()); 
        sql.Insert("db",null,values); 
        sql.Close(); 
       } 
      }); 
      show.setOnClickListener(new Button.OnClickListener() { 
       public void onClick(View view){ 
        sql.open(); 
        String query = "select sex from db where id=2"; 
        Cursor c = sql.rawQuery(query,null); 
        c.moveToFirst(); 
        (Error is here)it is my spinner i want show value >>>>>>   gender.setSelection(c.getString(0), true);  
       } 
      }); 
    } 
} 

我從我的微調保存在第二項到我的數據庫。現在我的微調器被重置。然後,我點擊顯示按鈕。我保存的項目將作爲數據顯示在微調框中。爲什麼這是失敗的?

+0

你想從數據庫中微調器或EDITTEXT設置數據。你能詳細解釋一下嗎? – 2012-07-26 11:45:45

+0

按照這個http://developer.android.com/guide/topics/ui/controls/spinner.html – Akram 2012-07-26 11:58:03

回答

5

如果我沒有得到你錯了,你正在努力尋找可以設置一個文本在微調選擇的項目,這是從您的數據庫,你有列表中的項目之一,在微調的方式。

如果是這樣,那麼這可能會幫助您:

例子:

ArrayList<String> options=new ArrayList<String>(); 
    ...onCreate(){ 
     ... 
     Cursor c=<your cursor with value>; 
     for(loop for total records){ 
      options.add(<value from cursor>); 
     } 
     //now you have options with all values of your database 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,options); 
     mSpinner.setAdapter(adapter); // this will set list of values to spinner 

     mSpinner.setSelection(options.indexOf(<value you want to show selected>)));//set selected value in spinner 
    } 

這將是這樣的:

您在數據庫中的這些選項:

1.apple

2.orange

3.pineapple

4.strawberry

5.grapes

現在

,你要顯示的菠蘿被選中的話,

mSpinner.setSelection(options.indexOf("pineapple"))); 

這條線將設置accordinly 。

編輯: 嘗試這樣的:

public class MainActivity_spinner extends Activity 
{ 
    Button save; 
    Button show; 
    ArrayList<String> items=new ArrayList<String>(); 
    Spinner gender; 

    public void onCreate(Bundle savedInstanceState) 
    { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      items.add("Male"); 
      items.add("Female"); 

      gender =(Spinner)findViewById(R.id.sex); 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, items);    
      gender.setAdapter(adapter); 

      save=(Button)findViewById(R.id.save); 
      show=(Button)findViewById(R.id.show); 
      //----------------------------------------------------------------  
      save.setOnClickListener(new Button.OnClickListener() { 
       public void onClick(View view){ 
        ContentValues values = new ContentValues(); 
        values.put("sex",gender.getSelectedItem().toString()); 
        sql.Insert("db",null,values); 
        sql.Close(); 
       } 
      }); 
      show.setOnClickListener(new Button.OnClickListener() { 
       public void onClick(View view){ 
        sql.open(); 
        String query = "select sex from db where id=2"; 
        Cursor c = sql.rawQuery(query,null); 
        c.moveToFirst(); 
        gender.setSelection(items.indexOf(c.getString(0)));  
       } 
      }); 
    } 
} 
+0

現在檢查我的更新 – user1551503 2012-07-26 14:36:57

+0

你只需要做:estado_instlacao.setSelection(options.indexOf( 「Adequada」))) ; – Hiral 2012-07-27 05:44:24

+0

如果我想使用這樣,因爲沒有具體的estado_instalcao.setSelection(options.index(c.getString(0)); – user1551503 2012-07-27 11:50:33

相關問題