2016-04-07 35 views
0

我一直在試圖弄清楚如何讓我的微調工作幾天一直工作,並且找不到任何東西來幫助我。我的微調不顯示值。微調器打開,每個值的空間都在那裏,但它們都是空白的。我曾嘗試使用ArrayList<String>String[]數組,但這兩者都沒有什麼不同,但是我需要使用另一個嗎?我嘗試了許多不同類型的ArrayAdapter,但都沒有工作。下面我的代碼中的代碼是最接近的代碼(如上所述),其他3個代碼是我在線看到的建議。我認爲我的主要問題是在我的陣列適配器中,但我不確定。Android微調不顯示陣列,但顯示的地方

這裏是我的java類

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_info); 

    engineSpinner = (Spinner)findViewById(R.id.rockets); 
    engineNameList = StagesData.getEngineNameList(); 
    engStrList = engineNameList.toArray(new String[engineNameList.size()]); 

    adapter = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_spinner_item, engStrList); 
    // adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, R.array.array_engines); 
    // adapter = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_dropdown_item_1line, R.id.rockets, engStrList); 
    // adapter = ArrayAdapter.createFromResource(InfoActivity.this, android.R.layout.simple_spinner_item, R.array.engines); 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    engineSpinner.setAdapter(adapter); 
    engineSpinner.setSelection(0); 

這裏是我的xml微調設置

<TableRow> 
     <TextView 
      android:text="@string/rocket" 
      android:padding="3dp"/> 
     <Spinner 
      android:id="@+id/rockets" 
      android:gravity="right" 
      android:entries="@array/engines" 
      android:clickable="true" 
      android:textColor="@color/colorblack" 
      android:spinnerMode="dropdown" 
      android:backgroundTint="@color/colorPrimary" /> 
    </TableRow> 

最後,這是我想從拉我的字符串數組文件(不要我把我的字符串-array在它自己的文件中的值文件夾中,或者它是否在字符串文件中,我已經看到並且不知道哪個,謝謝)

<?xml version="1.0" encoding="utf-8"> 
<resources> 
     <string-array name="engines"> 
      <item>Ant</item> 
      <item>Dart</item> 
      <item>Dawn</item> 
      <item>Flea</item> 
      <item>Hammer</item> 
      <item>Kickback</item> 
      <item>MainSail</item> 
      <item>Mammoth</item> 
      <item>Nerv</item> 
      <item>Poodle</item> 
      <item>Puff</item> 
      <item>R.A.P.I.E.R</item> 
      <item>Reliant</item> 
      <item>Rhino</item> 
      <item>Skipper</item> 
      <item>Spark</item> 
      <item>Spider</item> 
      <item>Swivel</item> 
      <item>Terrier</item> 
      <item>Thud</item> 
      <item>Thumper</item> 
      <item>Twin Boar</item> 
      <item>Twitch</item> 
      <item>Vector</item> 
     </string-array> 
</resources> 

因此,要回顧我的問題,我需要使用ArrayList<String>String[],我該如何設置我的ArrayAdapter,以及我需要將我的字符串數組放在哪裏?
預先感謝您!

+0

你的問題得到了解決? –

+0

是的。對不起,我沒有立即回覆。非常感謝。我對android編程並不陌生,我認爲我的第一個應用程序太複雜了,不能像我的第一個應用程序那樣工作,但它會一直出現。再次感謝你。 –

回答

0

我重新創建樣品和我改變

engStrList = engineNameList.toArray(new String[engineNameList.size()]); 
adapter = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_spinner_item, engStrList); 

engStrList = new String[]{"a","b","c"}; 
adapter = new ArrayAdapter<String>(InfoActivity.this, android.R.layout.simple_spinner_item, engStrList); 

工作正常,所以我的猜測是,你應該檢查什麼StagesData.getEngineNameList()正在恢復。


另外,如果你使用你的字符串數組這是正確的方式

ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.engines)); 

希望這有助於

+0

非常感謝你,我一直在努力讓這工作好幾天。我嘗試了你最後的建議,它完美地工作。我想我的.getEngineNameList()沒有返回字符串數組列表,因爲我希望。 –