2010-11-20 27 views
2

我想讓微調器在Android中工作。它顯示正常,我可以選擇列表中的任何一個選項。但是,我如何將它轉換爲字符串? 我想在下面的代碼中選擇'將保存選定的字符串,但我得到一個'非法修飾符的本地類YourItemSelectedListener; 'YourItemSelectedListener'只允許抽象或最終的'錯誤。 我在做什麼錯? 非常感謝您的幫助。使用微調器選擇作爲Android中的值

Spinner spinnerFPS = (Spinner) findViewById(R.id.sp_FPS); 
     ArrayAdapter adapter = ArrayAdapter.createFromResource(
       this, R.array.framesps, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinnerFPS.setAdapter(adapter); 
     spinnerFPS.setOnItemSelectedListener(new YourItemSelectedListener()); 


     public class YourItemSelectedListener implements OnItemSelectedListener { 

      public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
       String selected = parent.getItemAtPosition(pos).toString(); 
      } 

      public void onNothingSelected(AdapterView parent) { 
       // Do nothing. 
      } 
     } 

回答

1

由於您使用的是陣列的資源用於微調創造與當地數組聲明資源句柄 與getResources().getStringArray(R.array.framesps);

,然後使用該手柄使用位置變量來訪問所選擇的項目:

items[pos] 

繼承人代碼編輯:

Spinner spinnerFPS = (Spinner) findViewById(R.id.sp_FPS); 
    String[] items=getResources().getStringArray(R.array.framesps);//handle to your arrays 
ArrayAdapter adapter = ArrayAdapter.createFromResource(
      this, items, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerFPS.setAdapter(adapter); 
    spinnerFPS.setOnItemSelectedListener(new YourItemSelectedListener()); 


    public class YourItemSelectedListener implements OnItemSelectedListener { 

     public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
      String selected =items[pos]; // use handler to access select item 
     } 

     public void onNothingSelected(AdapterView parent) { 
      // Do nothing. 
     } 
    } 
+0

我已經試過了,現在得到「createFromResource」以下錯誤: 方法createFromResource(上下文,INT,INT)在類型ArrayAdapter是不適用的參數(TCCalc,字符串[],INT) 我也在: 'YourItemSelectedListener無法解析爲類型' 和最後在項目[pos]我得到: 我需要看到Spinner的工作演示,以幫助我瞭解正在發生的事情。那裏有一個真正簡單的例子嗎?乾杯。 – Entropy1024 2010-11-20 17:34:54

+0

我希望能解決這個問題,你可以隨時在google docs網站查看代碼 – Shardul 2010-11-21 13:38:08

+0

問題在於第一個項目是自動選擇的,反覆選擇它不會觸發事件。無法將微調器設置爲-1索引,以防止選擇第一項,使其對於此類應用程序無效。這對於android編碼人員來說是一個非常簡單的任務。 – 2011-12-08 03:00:55

3
ArrayAdapter adapter = ArrayAdapter.createFromResource(
     this, items, android.R.layout.simple_spinner_item); 

您將不得不添加CurrentActivityName.this。這將解決這個問題。你只是不能通過參數上下文作爲this。你將不得不把ActivityName.this