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