package com.feebe.rings; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListAdapter; import android.widget.SimpleAdapter; import android.widget.Toast; import com.feebe.lib.BaseList; import com.feebe.lib.Util; public class BillBoardList extends BaseList { private String url = ""; private JSONArray jArray; @Override public void onCreate(android.os.Bundle savedInstanceState) { super.onCreate(savedInstanceState); url = getIntent().getStringExtra("url"); }; @Override public ListAdapter getAdapter() { SimpleAdapter mAdapter = new SimpleAdapter(this, getData(), R.layout.comment_list_item, new String[]{"user","comment"}, new int[]{R.id.commentListItem1,R.id.commentListItem2}); return mAdapter; } private List<Map<String, Object>> getData() { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map; url = getIntent().getStringExtra("url"); //Log.e("URL: ", url); JSONObject jObject = Util.getJsonFromUrl(url, Const.OneMonth); if(jObject == null) { NoDataError(); } //Log.e("json: ", jObject.toString()); try { jArray = jObject.getJSONArray("list"); for(int i = 0; i < jArray.length(); i++) { JSONArray item = jArray.getJSONArray(i); String title = item.getString(0); String artist = item.getString(1); map = new HashMap<String, Object>(); map.put("user", artist); map.put("comment", title); list.add(map); } } catch (Exception e) { e.printStackTrace(); } if(list.size() == 0) { NoDataError(); } return list; } @Override public void onItemClick(AdapterView<?> parent, View v, int pos, long id) { try { String title = jArray.getJSONArray(pos).getString(0); String artist = jArray.getJSONArray(pos).getString(0); if(title.length() + artist.length() > 0) Search.getArtistAndTitle(BillBoardList.this, artist, title); } catch (JSONException e) { e.printStackTrace(); } } private void NoDataError() { Toast.makeText(getApplicationContext(), "No data", Toast.LENGTH_SHORT).show(); BillBoardList.this.finish(); } }