2013-12-18 61 views
1

IHAVE JSON,我把我的微調如下:如何從微調得到字符串的Android

{ 
    "data": [ 
     { 
      "kode": "1", 
      "text": "No Tujuan" 
     }, 
     { 
      "kode": "2", 
      "text": "Broadcast Admin PUPI" 
     }, 
     { 
      "kode": "3", 
      "text": "Broadcast TIM PUPI" 
     }, 
     { 
      "kode": "4", 
      "text": "Broadcast Semua PUPI" 
     }, 
     { 
      "kode": "5", 
      "text": "Broadcast Ketua KUB" 
     }, 
     { 
      "kode": "6", 
      "text": "Broadcast Operator PUPI" 
     }, 
     { 
      "kode": "7", 
      "text": "DJPT - Executive" 
     } 
    ] 
} 

時微調顯示,它顯示「文本」,但是當上飛旋的用戶點擊,它會給「科德」,但每次我點擊我的微調,它只是給‘文本’而不是‘科德’,這是我如何加載我飛旋:

public class SpinnerType extends AsyncTask<String, String, String>{ 

    @Override 
    protected void onPreExecute(){ 
     super.onPreExecute(); 
     dialog = new ProgressDialog(Modul_sms_broadcast.this); 
     dialog.setTitle(""); 
     dialog.setMessage("melakukan pengambilan data..."); 
     dialog.show(); 
    } 


    protected String doInBackground(String... args) { 
     String url ="http://10.10.2"; 
     JSONArray data = null; 
    try { 
     JSONParser jParser = new JSONParser(); 
     JSONObject json = jParser.getJSONFromUrl(url); 
     data = json.getJSONArray(real_data); 
     for(int i = 0; i < data.length(); i++){ 
      JSONObject c = data.getJSONObject(i); 

      // Storing each json item in variable 
      r1 = c.getString(real_rel1); 
      r2 = c.getString(real_rel2); 
      tipe_sms.add(new spin(r1, r2)); 

      System.out.println(r2); 
      System.out.println(r1); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

    @Override 
    protected void onPostExecute(String file_url){ 
     dialog.dismiss(); 
     ArrayAdapter spinnertype = new ArrayAdapter(getApplicationContext(),R.layout.spinner_style, tipe_sms); 
     spinnertype.setDropDownViewResource(android.R.layout.simple_list_item_1); 
     spinner1.setAdapter(spinnertype); 

      code=spinner1.getSelectedItem().toString(); 
      if(code.equals("1")){ 
       nomor_sms.setFocusable(false); 
       nomor_sms.setClickable(false); 
      } 
      else { 
       nomor_sms.setFocusable(true); 
       nomor_sms.setClickable(true); 
      } 

    } 
} 
public class spin { 
     String kode; 
     String text; 

     public spin(String n, String c) { 
     kode = n; 
     text = c; 
     } 

     public String toString() { 
     return text; 
     } 
    } 

有我的代碼anywrong?我希望有人能幫助我解決我的問題。

+0

你在哪裏添加'setOnItemSelectedListener'給微調? –

+1

tostring方法只返回文本,用這個來獲取代碼和文本public String toString(){ return kode +「,」+ text; } –

+0

@ρяσѕρєяK我沒有添加setOnItemSelectedListener我只是添加:代碼= spinner1.getSelectedItem()。toString(); –

回答

2

其回報不僅是因爲文本:

public String toString() { 
     return text; 
     } 

編輯:

只是更改爲:

public String toString() { 
     return text+" "+kode; 
     } 

對於從選定項目獲得代碼:

code=spinner1.getSelectedItem().toString(); 
int start = code.lastIndexOf(' '); 
String codeval = code.substring(start+1); 
+0

我想顯示在微調文本 –

+0

@Aoyama檢查我編輯的答案.. – Riser

+0

但我只想顯示文本沒有代碼 –

2

tipe_sms你可以使用任何文本。對於文本,你可以使用位置從onItemSelectedListener在微調,然後你可以得到該位置的旋轉對象,現在你可以很容易得到kode或文本。你明白我在說什麼。

相關問題