2014-01-28 65 views
0

我有一個android應用程序,其中一個spinner稱爲spn2,它是從數據庫中填充的。事情是我想獲得所選項目的字符串。我嘗試了很多方法,但它不可能,在某些情況下,我沒有得到bada和其他流水線的一些奇怪的結果,例如,如果我選擇「Maria」是通過descir獲得asdfe @ anssmnn718的字符串,當我想要字符串是「瑪麗亞」。代碼如下:獲取所選項目字符串

final Spinner spn2 = (Spinner)this.findViewById(R.id.spn2);  
    spn2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     public void onItemSelected(AdapterView<?> parent, android.view.View v, int position, long id) { 

      f = spn2.getSelectedItem().toString(); 

       r = String.valueOf((int)spn2.getSelectedItemId()); 

      obtenernombre(); 

      } 
      public void onNothingSelected(AdapterView<?> var1) { 

      } 
     }); 

的方法獲得的域名()具有下面的代碼:

private void obtenernombre() { 
    // TODO Auto-generated method stub  

    try { 

     String[] args = new String[]{r}; 
     baseDatos = openOrCreateDatabase(nombreBD, MODE_WORLD_WRITEABLE, null); 
     Cursor cur2 = baseDatos.rawQuery("SELECT codigo AS _id, nombre FROM contactos WHERE codigo=?", args); 

     if (cur2.moveToFirst()) { 
      do { 

       Toast.makeText(this, f, Toast.LENGTH_SHORT).show(); 
      } while (cur2.moveToNext()); 
     } 


    } catch (Exception e) { 
     Log.i(TAG, "Error al abrir o crear la base de datos" + e); 
    } 
} 

在此先感謝您的幫助。

回答

0

我是一個新的Android開發自己,但我用了幾個紗廠在一個應用程序我最近開發的方式,以及我會得到從選定的微調項目中的文本是:

String platformInput = platform_spinner.getSelectedItem().toString(); 

我知道有其他方式,但這種方法對我來說效果很好。該行使用「getSelectedItem」來獲取微調器選擇,然後「toString」將其轉換爲字符串。然後我可以用我需要的任何方式處理字符串。希望這可以幫助!

邁克

+0

這行代碼拋出了我一個奇怪的結果給出的例子和「瑪麗亞」沒有出現 – user3068256

+0

好。我可能會錯過這個,但是你使用什麼代碼將數據庫查詢中的結果綁定到微調器本身?你用什麼機制將結果鏈接到微調器? – user3116503

+0

點擊微調框應顯示在字符串selelccionado吐司。例如,如果我選擇瑪麗亞敬酒應該出現在「瑪麗亞」。點擊從數據庫填充的微調器,結果是一個名爲「f」的空字符串,最終會停在吐司。 – user3068256