2012-03-04 44 views
5

पर भेजा जाना है हाय मैंने एक ऐसी गतिविधि बनाई है जो जेसन प्रारूप टेक्स्ट से डेटा खींचती है और स्पिनर व्यू में प्रदर्शित होती है। लेकिन आखिरी हिस्से के साथ थोड़ा उलझन में हूँ। संपर्क सूची एक ArrayList प्रकार है, ArrayAdapter संपर्क सूची को इसके अनुकरण के रूप में स्वीकार नहीं कर रहा है। है यहाँ मेरी कोडऐरेएडाप्टर: जेसन डेटा स्पिनर

public class RegisterForEventActivity extends Activity { 

     private static String url = "http://10.0.2.2/Contacts.txt"; 
     private static final String TAG_NAME = "name"; 
     private static final String TAG_CONTACTS = "contacts"; 

     JSONArray jsonArray = null; 

     Spinner areaspinner; 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.register_layout); 


     // Hashmap for ListView 
      ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>(); 

       // Creating JSON Parser instance 
       JSONParser jParser = new JSONParser(); 

       // getting JSON string from URL 
       JSONObject json = jParser.getJSONFromUrl(url); 

       try { 
        // Getting Array of Contacts 
        jsonArray = json.getJSONArray(TAG_CONTACTS); 

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

        // looping through All Contacts 
        for(int i = 0; i < jsonArray.length(); i++){ 

         JSONObject c = jsonArray.getJSONObject(i); 

         // Storing each json item in variable 
         String name = c.getString(TAG_NAME); 

         // creating new HashMap 
         HashMap<String, String> map = new HashMap<String, String>(); 

         // adding each child node to HashMap key => value 
         map.put(TAG_NAME, name); 


         // adding HashList to ArrayList 
         contactList.add(map); 

ArrayAdapter<String> adapter = 
           new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, contactList);  
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
         areaspinner.setAdapter(adapter); 
        } 

       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
     } 
    } 

उत्तर

1

हाँ का उपयोग कर के, मैं यह पता लगा!

sp=(Spinner)findViewById(R.id.spinner1); 

    // Hashmap for ListView 


      // Creating JSON Parser instance 
      JSONParser jParser = new JSONParser(); 

      // getting JSON string from URL 
      JSONObject json = jParser.getJSONFromUrl(url); 
      System.out.println("Hello"); 
      try { 
       // Getting Array of Contacts 
       jsonArray = json.getJSONArray(TAG_CONTACTS); 

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

       // looping through All Contacts 
       for(int i = 0; i < jsonArray.length(); i++){ 

        JSONObject c = jsonArray.getJSONObject(i); 
        // Storing each json item in variable 

        String name = c.getString(TAG_NAME); 


        items[i]=c.getString(TAG_NAME); 
        System.out.println("Hello events "+items); 
       } 

       ArrayAdapter<String> adapter = 
         new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, items);  
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       sp.setAdapter(adapter); 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
3

है इसका कारण यह है कि आप HashMap की एक सूची से गुजर रहे हैं, और नहीं String की एक सरणी। String की एक सरणी बनाएं, इसमें अपना संपर्क डेटा जोड़ें और इसे सरणी में पास करें।

बजाय इस

 ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>(); 

उपयोग इस

 ArrayList<String> contactList = new ArrayList<String>(); 
+1

यह सही उत्तर है। यदि आप एक साधारण स्ट्रिंग के अलावा अतिरिक्त जानकारी स्टोर करना चाहते हैं तो आपको एक अलग एडाप्टर का उपयोग करने की आवश्यकता होगी। (जैसे कुंजी और मूल्य) – Knossos

+0

उत्तर सही है? लेकिन यह स्वीकृत संकेत नहीं दिखा रहा है। हाँ उस स्थिति में आपको संग्रह प्रकार और एडाप्टर प्रकार को भी बदलना होगा – Akram

+0

यह कैसे हल करें http://stackoverflow.com/questions/29446088/how-to-get-spinner-values-in-textview –

संबंधित मुद्दे