2013-04-27 111 views
0

对不起....我在Android的新....的Android的ListView适配器(JSON儿童)

我曾做过这样的模式: 我在活动中创建列表视图,并把它适配器与所有教程中的自己的活动...

但现在我必须进一步创建更复杂的活动:在我的每一个listview适配器视图我必须把另一个循环与数据=>其他listview与适配器...是它是真的吗?

这里是我的代码(我做教育的目标):

protected void onCreate(Bundle savedInstanceState) { 
     String bank; 
     bank = this.getIntent().getStringExtra("Bank_id"); 
     url = "http://192.168.1.4:3000/exchanger_lists/get_bank_exchanger_list/"+bank+".json"; 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_bank_exchangers_list); 

     // 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 
      banks = json.getJSONArray(TAG_Exchangers); 

      // looping through All Contacts 
      for(int i = 0; i < banks.length(); i++){ 
       JSONObject c = banks.getJSONObject(i); 

       // Storing each json item in variable 
       String id = c.getString(TAG_ID); 
       String name = c.getString(TAG_NAME); 
       String address = c.getString(TAG_address); 
       String location_name = c.getString(TAG_location_name); 
       String latitude = c.getString(TAG_latitude); 
       String longitude = c.getString(TAG_longitude); 
       String exchanger_type_name = c.getString(TAG_exchanger_type_name); 

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


       map.put(TAG_ID, id); 
       map.put(TAG_NAME, name); 
       map.put(TAG_address, address); 
       map.put(TAG_location_name, location_name); 
       map.put(TAG_latitude, latitude); 
       map.put(TAG_longitude, longitude); 
       map.put(TAG_exchanger_type_name, exchanger_type_name); 


       // adding HashList to ArrayList 
       contactList.add(map); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 


     ListAdapter adapter = new SimpleAdapter(this, contactList, 
       R.layout.bank_exchanger_list_element, 
       new String[] { TAG_NAME, TAG_location_name, TAG_address, TAG_exchanger_type_name, TAG_latitude, TAG_longitude }, new int[] { 
         R.id.bank_e_n, R.id.nas_punkt_e_n , R.id.adress_obm_e_n , R.id.tip_obm_e_n , R.id.shirota_e_n , R.id.dolgota_e_n }); 

     setListAdapter(adapter); 
    } 

我需要解析json的孩子每个TAG_Exchangers并添加作为适配器listAdapter适配器=新SimpleAdapter适配器(这一点,contactList ,.......

是真的吗?怎么办呢?

回答

0

为什么不使用BaseAdapter,在那里你排除一切与它的外观以及如何使用这些数据?只实现getCount将,getItem和getView。

有关listView的更多信息,请观看“the world of listView”讲座。

+0

hm ....复杂...为什么Base?如何把它放在一个更多的集合?你可以给代码吗? – 2013-04-27 14:12:42

+0

刚刚阅读了baseAdapter samples.i'm不知道你想要它是多么复杂,所以我认为你需要baseAdapter。也许你没有。关于使用新的项目列表,请创建适配器的新实例并调用listView.setAdapter,或者在适配器类中设置列表并调用adapter.notifyDataSetChanged()。 – 2013-04-27 14:32:06