i populate listview via json parsing using AsyncTask. in every row of list view i have a button. i want to write onclickLister for them.
i want, when i click add to cart the data of name and price and quantity save to sqlite.
public void addtocart(){
Button btnaddtocart=(Button)findViewById(R.id.btnInsertToCart);
final TextView tname=(TextView)findViewById(R.id.nameNewItem);
final EditText eqty=(EditText)findViewById(R.id.updateQty);
final TextView tprice=(TextView)findViewById(R.id.priceNewItem);
btnaddtocart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
if(eqty.getText().toString().equalsIgnoreCase("")){
Toast.makeText(getApplicationContext(),"Please enter the Quantity.",Toast.LENGTH_LONG).show();
}
else { SQLiteDatabase database = openOrCreateDatabase("ORCL", MODE_PRIVATE, null);
database.execSQL("CREATE TABLE IF NOT EXISTS CART(id integer primary key autoincrement,title VARCHAR(150),qty INT(10),price INT(10));");
database.execSQL("INSERT INTO CART(title,qty,price) VALUES('" + tname.getText().toString() + "'," + Integer.parseInt(eqty.getText().toString())+","
+ Integer.parseInt(tprice.getText().toString())+");");
database.close();
eqty.setText(null);
//hide keyboard
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(eqty.getWindowToken(), 0);
Toast.makeText(getApplicationContext(),"Add to Cart",Toast.LENGTH_LONG).show();}
}
catch (Exception ex){
Toast.makeText(getApplicationContext(),ex.getMessage(),Toast.LENGTH_LONG).show();
}
}
});
but my question is i should write codes which part of following code:
public class Update extends Activity {
ListView list;
Button Btngetdata;
ProgressDialog pDialog;
ArrayList<HashMap<String, String>> newItemlist = new ArrayList<HashMap<String, String>>();
private static final String TAG_ITEM = "NewItem";
private static final String TAG_NAME = "name";
private static final String TAG_DESCRIPTION = "description";
private static final String TAG_PRICE = "price";
ConnectionDetector cd;
Boolean isInternetPresent = false;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.updateapp);
pDialog = new ProgressDialog(Update.this);
pDialog.setMessage("Getting Data ...");
newItemlist = new ArrayList<HashMap<String, String>>();
Btngetdata = (Button)findViewById(R.id.getdata);
cd = new ConnectionDetector(getApplicationContext());
Btngetdata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
isInternetPresent = cd.isConnectingToInternet();
if (isInternetPresent) {
new JSONParse().execute(); }
else {
Toast.makeText(getApplicationContext(),"You don't have internet connection.",Toast.LENGTH_LONG).show();
}
}
});
}
private class JSONParse extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog.show();
}
@Override
protected Void doInBackground(String... args) {
try {
Log.i("...............", "Hello..............");
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpPost = new HttpGet("http://www.karocellen.com/newItem.json");
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
String jsonstring = EntityUtils.toString(httpEntity);
Log.i("...............",jsonstring);
JSONObject json = new JSONObject(jsonstring);
JSONArray newitem = json.getJSONArray(TAG_ITEM);
for(int i = 0; i < newitem.length(); i++){
JSONObject c = newitem.getJSONObject(i);
String name = c.getString(TAG_NAME);
String description = c.getString(TAG_DESCRIPTION);
String price = c.getString(TAG_PRICE);
Log.i("...............",name);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_NAME, name);
map.put(TAG_DESCRIPTION, description);
map.put(TAG_PRICE, price);
newItemlist.add(map);
}
} catch (Exception ex){
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
pDialog.dismiss();
list=(ListView)findViewById(R.id.listupdate);
ListAdapter adapter = new SimpleAdapter(Update.this, newItemlist,
R.layout.updateapprow,
new String[] { TAG_NAME,TAG_DESCRIPTION, TAG_PRICE }, new int[] {
R.id.nameNewItem,R.id.descriptionNewItem, R.id.priceNewItem});
list.setAdapter(adapter);
}
}