2011-08-18 32 views
2

1.我的問題:如何獲取我的JSON數據並將其解析爲可在我的微調器中使用的數組。從json數據/數組創建微調器選項

下面是我的JSON數據:

[["Mike Test 1"],["Mike Test 2"],["hello world"],["TEST MIKE 4"],["TEST MIKE 6"],["aliens,crazy stuff"],["Alien"],["american flags,flags"]] 

我的腳本調用獲取數據的功能。我知道這是行得通的,因爲我已經烘托了回報價值。然後它應該循環並將值分配給在微調器中使用的新數組。

下面是我的java:

Spinner areaspinner; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    JSONArray jsonArray; 

    try { 
    //SETTINGS AND METHOD THAT GETS THE DATA 
     String spinnerContentType = "styles"; 
     String spinnerURL = "getStyles.php"; 
     String spinner_data = DataCall.getJSON(spinnerURL,spinnerContentType); 

    //NEW JSONArray OBJECT 
     jsonArray = new JSONArray(spinner_data); 

     final String[] array_spinner = new String[jsonArray.length()]; 

     int show_total = jsonArray.length(); 
     //CHECK HOW MANY ITEMS ARE RETURNED 
     Toast.makeText(flash_tattoo.this, show_total + "test", Toast.LENGTH_LONG).show(); 

     for (int i=0; i<jsonArray.length(); i++) 
     { 
      //LOOP AND ASSIGN TO ARRAY 
      String styleValue = jsonArray.getJSONArray(0).getString(i); 
      array_spinner[i] = styleValue; 

     } 
     ArrayAdapter<String> adapter = 
      new ArrayAdapter<String> (this, 
        android.R.layout.simple_spinner_item,array_spinner); 

     adapter.setDropDownViewResource(R.layout.spinner_layout); 
     areaspinner.setAdapter(adapter); 

    }catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

這是我的微調佈局:

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:singleLine="true" 
    android:layout_width="fill_parent" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:textColor="#e70909" 
/> 
+1

你看到的選項替換adapter.setDropDown時..這個在你的代碼,adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); – rochdev

+0

你是否在array_spinner中獲得了Json的數據。 –

+0

@rochdev更改setdropdownviewresource並沒有幫助。不過謝謝。 – Denoteone

回答

2

對我來說,它看起來像areaspinnernull

要添加一個微調你有這樣的東西在你的main.xml。

<Spinner android:id="@+id/mySpinner" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:prompt="@string/mySpinnerText" /> 

然後在onCreate()

Spinner sp = (Spinner) findViewById(R.id.mySpinner); 
     ArrayAdapter<String> adapter = 
       new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, array_spinner);  
     adapter.setDropDownViewResource(R.layout.spinner_layout); 
     sp.setAdapter(adapter); 
+0

你的文章和其中一條評論幫助我圖問題是什麼。我正在創建我的微調器,但我沒有將微調器添加到視圖中,因爲它在我的佈局中,它仍然出現,這就是讓我困惑的原因。感謝和+1 – Denoteone