Code for parsing json object , from parsed json object taking image URL, with those URL getting image into bitmap, That bitmap put into arraylist. That arraylist image is then fetched to listview using BaseAdapter.
public class product extends ListActivity implements OnClickListener{
private GetProduct_Thread doSth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shop_product);
private GetProduct_Thread doSth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shop_product);
// running Asynctask
new GetCategoryProduct_Thread().execute();
Button shopProductList = (Button)findViewById(R.id.shop_button);
shopProductList.setOnClickListener(this);
Button shopProductList = (Button)findViewById(R.id.shop_button);
shopProductList.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.home, menu);
return true;
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.home_button:
finish();
break;
default:
break;
}
}
public class GetProduct_Thread extends AsyncTask<String, Void, String>{
private Void param;
@Override
protected String doInBackground(String... params) {
try{
sendRequest();
}catch (Exception e) {
// TODO: handle exception
}
publishProgress(param);
return null;
}
protected void onPostExecute(String result) {
super.onPostExecute(result);
setListAdapter(new productListAdapter(this));
}
}
JSONArray Product_jsonarray= null;
JSONObject jo = new JSONObject();
private List<? extends NameValuePair> postparams;
static InputStream is = null;
static JSONObject jObj = null;
public static String json;
// Hashmap for ListView
ArrayList<HashMap<String, String>> categoryNameList = new ArrayList<HashMap<String, String>>();
private Bitmap bitmap;
private ImageView imagy;
// Arraylist for Bitmap Image
ArrayList<Bitmap> bitmapArray = new ArrayList<Bitmap>();
private void sendRequest() {
try{
URL url1 = new URL(JSON_Url._shopNowURL);
InputSource is = new InputSource(url1.openStream());
is.setEncoding("ISO-8859-1"); // Also Try UTF-8 or UTF-16
BufferedReader br = new BufferedReader(new InputStreamReader(
is.getByteStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
json = sb.toString();
System.out.println("resp -- " + json);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
System.out.println("jjjj -- " + jObj);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
try {
JSONObject get_string = new JSONObject(jObj.toString());
JSONObject shownowProduct = get_string.getJSONObject("Products");
jsonProduct_jsonarray = new JSONArray();
jsonProduct_jsonarray = shownowProduct.getJSONArray("NowProduct");
// Receive the JSON object from server
for (int i = 0; i < jsonProduct_jsonarray.length(); i++) {
System.out.println("GOT JSON VALUE ");
JSONObject c = jsonProduct_jsonarray.getJSONObject(i);
String RetailPrice = c.getString("RetailPrice");
String WholeSaleCost = c.getString("WholeSaleCost");
String Code = c.getString("Code");
String Description = c.getString("Description");
String LogoInformation = c.getString("LogoInformation");
String ID = c.getString("ID");
String Name = c.getString("Name");
String brandName = c.getString("brandName");
String DiscountedPrice = c.getString("DiscountedPrice");
String Thumbnail = c.getString("Thumbnail");
StoredVariable.setProductName(i, Name);
StoredVariable.setProductRetailPriceId(i, RetailPrice);
StoredVariable.setSaleCost(i,WholeSaleCost);
StoredVariable.setImageThumbnail(i,Thumbnail);
}
for(int k = 0; k <jsonProduct_jsonarray.length() ; k++)
{
try {
URL url = new URL(StoredVariable.getImageThumbnail(k));
HttpGet httpRequest = null;
httpRequest = new HttpGet(url.toURI());
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = (HttpResponse) httpclient
.execute(httpRequest);
HttpEntity entity = response.getEntity();
BufferedHttpEntity b_entity = new BufferedHttpEntity(entity);
InputStream input = b_entity.getContent();
bitmap = BitmapFactory.decodeStream(input);
bitmapArray.add(bitmap); // Add a bitmap
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.home, menu);
return true;
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.home_button:
finish();
break;
default:
break;
}
}
public class GetProduct_Thread extends AsyncTask<String, Void, String>{
private Void param;
@Override
protected String doInBackground(String... params) {
try{
sendRequest();
}catch (Exception e) {
// TODO: handle exception
}
publishProgress(param);
return null;
}
protected void onPostExecute(String result) {
super.onPostExecute(result);
setListAdapter(new productListAdapter(this));
}
}
JSONArray Product_jsonarray= null;
JSONObject jo = new JSONObject();
private List<? extends NameValuePair> postparams;
static InputStream is = null;
static JSONObject jObj = null;
public static String json;
// Hashmap for ListView
ArrayList<HashMap<String, String>> categoryNameList = new ArrayList<HashMap<String, String>>();
private Bitmap bitmap;
private ImageView imagy;
// Arraylist for Bitmap Image
ArrayList<Bitmap> bitmapArray = new ArrayList<Bitmap>();
private void sendRequest() {
try{
URL url1 = new URL(JSON_Url._shopNowURL);
InputSource is = new InputSource(url1.openStream());
is.setEncoding("ISO-8859-1"); // Also Try UTF-8 or UTF-16
BufferedReader br = new BufferedReader(new InputStreamReader(
is.getByteStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
json = sb.toString();
System.out.println("resp -- " + json);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
System.out.println("jjjj -- " + jObj);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
try {
JSONObject get_string = new JSONObject(jObj.toString());
JSONObject shownowProduct = get_string.getJSONObject("Products");
jsonProduct_jsonarray = new JSONArray();
jsonProduct_jsonarray = shownowProduct.getJSONArray("NowProduct");
// Receive the JSON object from server
for (int i = 0; i < jsonProduct_jsonarray.length(); i++) {
System.out.println("GOT JSON VALUE ");
JSONObject c = jsonProduct_jsonarray.getJSONObject(i);
String RetailPrice = c.getString("RetailPrice");
String WholeSaleCost = c.getString("WholeSaleCost");
String Code = c.getString("Code");
String Description = c.getString("Description");
String LogoInformation = c.getString("LogoInformation");
String ID = c.getString("ID");
String Name = c.getString("Name");
String brandName = c.getString("brandName");
String DiscountedPrice = c.getString("DiscountedPrice");
String Thumbnail = c.getString("Thumbnail");
StoredVariable.setProductName(i, Name);
StoredVariable.setProductRetailPriceId(i, RetailPrice);
StoredVariable.setSaleCost(i,WholeSaleCost);
StoredVariable.setImageThumbnail(i,Thumbnail);
}
for(int k = 0; k <jsonProduct_jsonarray.length() ; k++)
{
try {
URL url = new URL(StoredVariable.getImageThumbnail(k));
HttpGet httpRequest = null;
httpRequest = new HttpGet(url.toURI());
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = (HttpResponse) httpclient
.execute(httpRequest);
HttpEntity entity = response.getEntity();
BufferedHttpEntity b_entity = new BufferedHttpEntity(entity);
InputStream input = b_entity.getContent();
bitmap = BitmapFactory.decodeStream(input);
bitmapArray.add(bitmap); // Add a bitmap
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
Log.e("log", "bad url");
} catch (IOException e) {
Log.e("log", "io error");
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private class productListAdapter extends BaseAdapter {
public productListAdapter(
GetCategoryProduct_Thread getCategoryProduct_Thread) {
}
public int getCount() {
return shopProduct_jsonarray.length();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
System.out.println("position : " + position);
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.shop_product_list, null);
}
ImageView iv = (ImageView) v.findViewById(R.id.image_view);
//for(int p = 0;p < get_jsonarray.length();p++)
{
if (position == 0) {
iv.setImageBitmap(bitmapArray.get(position));
} else {
iv.setImageBitmap(bitmapArray.get(position));
}
}
TextView tvname = (TextView) v.findViewById(R.id.textView1);
TextView tvdetail = (TextView) v.findViewById(R.id.textView2);
TextView tvdetailcost = (TextView) v.findViewById(R.id.textView3);
tvname.setText(StoredVariable.getName(position));
tvdetail.setText(StoredVariable.getRetailPrice(position));
tvdetailcost.setText(StoredVariable.getWholeSaleCost(position));
return v;
}
};
}
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
Log.e("log", "bad url");
} catch (IOException e) {
Log.e("log", "io error");
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private class productListAdapter extends BaseAdapter {
public productListAdapter(
GetCategoryProduct_Thread getCategoryProduct_Thread) {
}
public int getCount() {
return shopProduct_jsonarray.length();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
System.out.println("position : " + position);
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.shop_product_list, null);
}
ImageView iv = (ImageView) v.findViewById(R.id.image_view);
//for(int p = 0;p < get_jsonarray.length();p++)
{
if (position == 0) {
iv.setImageBitmap(bitmapArray.get(position));
} else {
iv.setImageBitmap(bitmapArray.get(position));
}
}
TextView tvname = (TextView) v.findViewById(R.id.textView1);
TextView tvdetail = (TextView) v.findViewById(R.id.textView2);
TextView tvdetailcost = (TextView) v.findViewById(R.id.textView3);
tvname.setText(StoredVariable.getName(position));
tvdetail.setText(StoredVariable.getRetailPrice(position));
tvdetailcost.setText(StoredVariable.getWholeSaleCost(position));
return v;
}
};
}