2011-12-14 66 views
4

我有一個旋轉器從Array旋轉器,使用來自的strings.xml在strings.xml中

陣列如果陣列具有5串(1,2,3,4,5)的設定值,以及i想要微調器顯示第二個 字符串(2)作爲默認值,這可能嗎? 我知道我可以重新排列字符串順序,以便第一個字符串是2, ,但是如果微調對話框顯示爲(2,1,3,4,5),這看起來不太好。

或者數組必須在我的活動中以編程方式創建 ,然後使用setPostion()? 我試過這個,但在活動中創建數組時遇到了問題。 任何人都可以請給我一個如何創建數組的例子,並使用 它在微調()

我也搜索了這裏的答案,但似乎無法找到我所需要的。

感謝您尋找....

回答

12

我建議你檢查:http://developer.android.com/resources/tutorials/views/hello-spinner.html

你應該建立在你的活動的ArrayAdapter。

從上面的鏈接:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Spinner spinner = (Spinner) findViewById(R.id.spinner); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
} 

您可以使用

spinner.setSelection(adapter.getPosition(value))); 

設置的位置。

3

乾杯的答覆.....

沒有做我所需要的,但已成功如下解決我的問題..

首先,我創造的,而不是我的活動範圍內的數組, strings.xml中。

String[] NoCore_Array = new String [5]; 
{ 
    NoCore_Array[0] = "1"; 
    NoCore_Array[1] = "2"; 
    NoCore_Array[2] = "3"; 
    NoCore_Array[3] = "4"; 
    NoCore_Array[4] = "5"; 

} 

然後創建使用微調...

Spinner spnNoCore = (Spinner) findViewById(R.id.spinner_nocore); 

然後創建的適配器,使用上述陣列....作爲適配器的

ArrayAdapter NoCoreAdapter = new ArrayAdapter(this, 
    android.R.layout.simple_spinner_item, NoCore_Array); 
    spnNoCore.setAdapter(NoCoreAdapter); 

然後設置默認位置以下...

//Set Default Selection 
    spnNoCore.setSelection(1); 

然後對行動微調代碼休息...

 spnNoCore.setOnItemSelectedListener(new OnItemSelectedListener(){ 

     public void onItemSelected(AdapterView<?> parent, 
      View view, int pos, long id) { 

      //Get item from spinner and store in string conductorSize........ 
      NoCore = parent.getItemAtPosition(pos).toString(); 

      if (NoCore.equals(NoCore1)) { CoreNo = 1 ; } 
      if (NoCore.equals(NoCore2)) { CoreNo = 2 ; } 
      if (NoCore.equals(NoCore3)) { CoreNo = 3 ; } 
      if (NoCore.equals(NoCore4)) { CoreNo = 4 ; } 
      if (NoCore.equals(NoCore5)) { CoreNo = 5 ; } 

    } 

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

希望這可以幫助誰是有與微調 設置默認選擇相同問題的其他人。

但是,如果以這種方式完成對話框的佈局並不盡如人意, 單選按鈕丟失,只是看起來像文本選擇 ,並用線條分隔各個部分。

+0

thanx男人,你不知道你剛剛救了我多少工作,我正在嘗試這麼多無用的解決方案,例如創建旋轉陣列 – 2012-10-25 11:23:16