К сожалению .... Я новичок в андроиде ....адаптера Android ListView в ListView (JSON дети)
Я сделал такую схему: я создал ListView в моей деятельности, и положить на него адаптере с собственной деятельностью, как и во всех учебниках ...
Но теперь я должен пойти дальше и создать более сложную деятельность: на каждом моем представлении адаптера listview я должен поместить еще один цикл с данными => другим списком с адаптером ... Is это реально?
Вот мой код (я это сделать в образовательной цели):
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 .......
Реально ли это? и как это сделать?
hm .... сложный ... почему Base? как положить тогда в него еще одну коллекцию? не могли бы вы дать код? –
только что прочитал о примерах baseAdapter. Я не уверен, насколько сложно вы этого хотите, поэтому я предположил, что вам нужен baseAdapter. возможно, нет. об использовании нового списка элементов, либо создайте новый экземпляр адаптера, либо вызовите listView.setAdapter, либо установите список внутри класса адаптера и вызовите адаптер.notifyDataSetChanged(). –