我想让用户通过动作顺序添加多个项目 [英] I want to let user add multiple items by action sequence

查看:107
本文介绍了我想让用户通过动作顺序添加多个项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在做一个应用程序中,我使用JSON到ListView中获取数据,并允许用户在另一种形式查看所选的项目,以singleMenuItem形式我已经放置了一个按钮,即 - 加入购物车,在这里,我想,只要用户将点击该按钮,然后选择项目需要查看购物车形式展现,然后返回到列表视图中的另一个活动选择一个项目>显示>再次单击添加到购物车按钮,显示所有由用户选择进入查看购物车表中的项目,我只是想显示项目的标题和成本,这些我取到SingleMenuItem形式使用意向的ListView的形式,现在我想表现出像查看购物车形式: - 由动作顺序添加多个项目,问题是我不知道如何更新查看购物车组成,每次只要用户点击加入购物车按钮。

目录(列表视图活动)code: -

 公共类目录扩展活动{

静态字符串URL =HTTP:/ -------- /和/ menu.json;
静态字符串KEY_CATEGORY =项目;
静态最后弦乐KEY_TITLE =称号;
静态最后弦乐KEY_DESCRIPTION =说明;
静态最后弦乐KEY_COST =成本;
静态最后弦乐KEY_THUMB_URL =imageUri;

ListView控件列表;
LazyAdapter适配器;

/ **第一次创建活动时调用。 * /
@覆盖
 保护无效的onCreate(包savedInstanceState){
// TODO自动生成方法存根
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);


最后的ArrayList< HashMap的<字符串,字符串>> itemsList =新的ArrayList< HashMap的<字符串,字符串>>();
名单=(ListView控件)findViewById(R.id.listView1);
适配器=新LazyAdapter(这一点,itemsList);
list.setAdapter(适配器);


意图= getIntent();

KEY_CATEGORY = in.getStringExtra(类);

                           尝试{

                 JSONArray jsonArray = json.getJSONArray(KEY_CATEGORY);

                    的for(int i = 0; I< jsonArray.length();我++){

                        HashMap的<字符串,字符串>图=新的HashMap<字符串,字符串>();
                        的JSONObject的JSONObject = jsonArray.getJSONObject(我);

                        map.put(ID,将String.valueOf(I));
                        map.put(KEY_TITLE,jsonObject.getString(KEY_TITLE));
                        map.put(KEY_DESCRIPTION,jsonObject.getString(KEY_DESCRIPTION));
                        map.put(KEY_COST,jsonObject.getString(KEY_COST));
                        map.put(KEY_THUMB_URL,jsonObject.getString(KEY_THUMB_URL));


                    itemsList.add(图)



                  }
                    返回itemsList;
            }赶上(JSONException E){
                 Log.e(log_tag,错误分析数据+ e.toString());
            }

                返回null;

                }


          @覆盖

          保护无效onPostExecute(ArrayList中< HashMap的<字符串,字符串>>的结果){

                名单=(ListView控件)findViewById(R.id.listView1);
                适配器=新LazyAdapter(Catalogue.this,itemsList);
                list.setAdapter(适配器);

                this.progressDialog.dismiss();
                list.setOnItemClickListener(新OnItemClickListener(){

                    公共无效onItemClick(适配器视图<>母公司视图中查看,
                            INT位置,长的id){
                          HashMap的<字符串,字符串>地图= itemsList.get(位置);

                        意图=新的意图(Catalogue.this,SingleMenuItem.class);
                        in.putExtra(KEY_TITLE,map.get(KEY_TITLE));
                        in.putExtra(KEY_DESCRIPTION,map.get(KEY_DESCRIPTION));
                        in.putExtra(KEY_THUMB_URL,map.get(KEY_THUMB_URL));
                        in.putExtra(KEY_COST,map.get(KEY_COST));
                        startActivity(在);
                    }


                });

               的ImageButton viewShoppingCart =(的ImageButton)findViewById(R.id.ButtonViewCart);
               viewShoppingCart.setOnClickListener(新OnClickListener(){

                    公共无效的onClick(视图v){
                        意图=新的意图
                               (Catalogue.this,FinalOrder.class);
                        startActivity(在);

                    }
                });



          }}}
 


SingleMenuItem活动code

 公共类SingleMenuItem延伸活动{
静态最后弦乐KEY_TITLE =称号;
静态最后弦乐KEY_COST =成本;
静态最后弦乐KEY_THUMB_URL =imageUri;
私人的EditText edit_qty_ code;
私人TextView的txt_total;
私人TextView的text_cost_ code;
私人双人itemamount = 0;
私人双人itemquantity = 0;

@覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.single);

    意图= getIntent();
    字符串标题= in.getStringExtra(KEY_TITLE);
    字符串thumb_url = in.getStringExtra(KEY_THUMB_URL);
    最后弦乐成本= in.getStringExtra(KEY_COST);

    ImageLoader的ImageLoader的=新ImageLoader的(getApplicationContext());

    ImageView的imgv =(ImageView的)findViewById(R.id.single_thumb);
    TextView的txttitle =(TextView中)findViewById(R.id.single_title);
    TextView的txtcost =(TextView中)findViewById(R.id.single_cost);
    TextView的txtheader =(TextView中)findViewById(R.id.actionbar);

    txttitle.setText(职称);
    txtheader.setText(职称);
    txtcost.setText(成本);
    imageLoader.DisplayImage(thumb_url,imgv);



    的ImageButton addToCartButton =(的ImageButton)findViewById(R.id.img_add);
    addToCartButton.setOnClickListener(新OnClickListener(){

    公共无效的onClick(视图v){
        意图=新的意图
               (SingleMenuItem.this,FinalOrder.class);
            in.putExtra(KEY_TITLE,getIntent()getStringExtra(KEY_TITLE));
            in.putExtra(KEY_COST,getIntent()getStringExtra(KEY_COST));
            startActivity(在);


            //关闭活动
                完();
            }
        });
}}
 


ViewCart活动code: -

 公共类FinalOrder扩展活动
{
静态最后弦乐KEY_TITLE =称号;
静态最后弦乐KEY_COST =成本;
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.view);


意图= getIntent();

字符串TITLE1 = in.getStringExtra(KEY_TITLE);
字符串COST1 = in.getStringExtra(KEY_COST);

TextView的txttitle1 =(TextView中)findViewById(R.id.item_name);
TextView的txtcost1 =(TextView中)findViewById(R.id.item_cost);

txttitle1.setText(TITLE1);
txtcost1.setText(COST1);

}
}
 

解决方案

要获得查看购物车进行更新,你需要集中存储的数据。最好使用SQLite数据库。然后你就可以当用户添加到购物车中更新这个数据库,查看车那么当,就可以从数据库中读取。

I am making an app in which i am fetching data using JSON into ListView, and allowing user to view selected item in another form, in singleMenuItem form i have placed a button namely - Add to Cart, here i want whenever user will click on that button, then selected item need to show in View Cart form, then go back to Listview Select an item > show in another activity > again click on Add to Cart button and show all the items selected by user into View Cart Form, i just want to show Item's Title and Cost, those i am fetching into SingleMenuItem form using Intent from ListView Form and now i want to show in View Cart Form like:- add multiple items by action sequence, the problem is I don't know how to update View Cart form every time whenever user click on Add to Cart Button.

Catalogue(List View Activity) Code:-

 public class Catalogue  extends Activity{

static String URL = "http:/--------/and/menu.json";
static String KEY_CATEGORY = "item";    
static final String KEY_TITLE = "title";
static final String KEY_DESCRIPTION = "description";
static final String KEY_COST = "cost";
static final String KEY_THUMB_URL = "imageUri";

ListView list;
LazyAdapter adapter;

/** Called when the activity is first created. */
@Override
 protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


final ArrayList<HashMap<String, String>> itemsList = new ArrayList<HashMap<String, String>>();
list=(ListView)findViewById(R.id.listView1);            
adapter=new LazyAdapter(this, itemsList);        
list.setAdapter(adapter);


Intent in = getIntent();

KEY_CATEGORY = in.getStringExtra("category");

                           try{

                 JSONArray jsonArray = json.getJSONArray(KEY_CATEGORY);

                    for(int i=0;i < jsonArray.length();i++){                        

                        HashMap<String, String> map = new HashMap<String, String>();
                        JSONObject jsonObject = jsonArray.getJSONObject(i);                     

                        map.put("id",  String.valueOf(i));
                        map.put(KEY_TITLE, jsonObject.getString(KEY_TITLE));
                        map.put(KEY_DESCRIPTION, jsonObject.getString(KEY_DESCRIPTION));
                        map.put(KEY_COST, jsonObject.getString(KEY_COST));
                        map.put(KEY_THUMB_URL, jsonObject.getString(KEY_THUMB_URL));


                    itemsList.add(map);



                  } 
                    return itemsList;
            }catch(JSONException e)        {
                 Log.e("log_tag", "Error parsing data "+e.toString());
            }

                return null;

                }


          @Override

          protected void onPostExecute(ArrayList<HashMap<String, String>> result) {

                list=(ListView)findViewById(R.id.listView1);            
                adapter=new LazyAdapter(Catalogue.this, itemsList);        
                list.setAdapter(adapter);

                this.progressDialog.dismiss();
                list.setOnItemClickListener(new OnItemClickListener() {

                    public void onItemClick(AdapterView<?> parent, View view,
                            int position, long id) {
                          HashMap<String, String> map = itemsList.get(position);

                        Intent in = new Intent(Catalogue.this, SingleMenuItem.class);
                        in.putExtra(KEY_TITLE, map.get(KEY_TITLE));
                        in.putExtra(KEY_DESCRIPTION, map.get(KEY_DESCRIPTION));
                        in.putExtra(KEY_THUMB_URL, map.get(KEY_THUMB_URL));
                        in.putExtra(KEY_COST, map.get(KEY_COST));
                        startActivity(in);
                    }


                });     

               ImageButton viewShoppingCart = (ImageButton) findViewById(R.id.ButtonViewCart);
               viewShoppingCart.setOnClickListener(new OnClickListener() {

                    public void onClick(View v) {
                        Intent in = new Intent
                               (Catalogue.this, FinalOrder.class);
                        startActivity(in);

                    }
                });



          } }}


SingleMenuItem Activity Code

   public class SingleMenuItem extends Activity{
static final String KEY_TITLE = "title";
static final String KEY_COST = "cost";
static final String KEY_THUMB_URL = "imageUri";
private EditText edit_qty_code;
private TextView txt_total;
private TextView text_cost_code;
private double itemamount = 0;
private double itemquantity = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.single);

    Intent in = getIntent();
    String title = in.getStringExtra(KEY_TITLE);
    String thumb_url = in.getStringExtra(KEY_THUMB_URL);
    final String cost = in.getStringExtra(KEY_COST);

    ImageLoader imageLoader = new ImageLoader(getApplicationContext());

    ImageView imgv = (ImageView) findViewById(R.id.single_thumb);
    TextView txttitle = (TextView) findViewById(R.id.single_title);
    TextView txtcost = (TextView) findViewById(R.id.single_cost);
    TextView txtheader = (TextView) findViewById(R.id.actionbar);

    txttitle.setText(title);
    txtheader.setText(title);
    txtcost.setText(cost);
    imageLoader.DisplayImage(thumb_url, imgv);



    ImageButton addToCartButton = (ImageButton) findViewById(R.id.img_add);
    addToCartButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {                               
        Intent in = new Intent
               (SingleMenuItem.this, FinalOrder.class);
            in.putExtra(KEY_TITLE, getIntent().getStringExtra(KEY_TITLE)); 
            in.putExtra(KEY_COST, getIntent().getStringExtra(KEY_COST));
            startActivity(in);


            // Close the activity
                finish();
            }
        });    
}}


ViewCart Activity Code:-

public class FinalOrder extends Activity
{
static final String KEY_TITLE = "title";
static final String KEY_COST = "cost";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);     


Intent in = getIntent();

String title1 = in.getStringExtra(KEY_TITLE);
String cost1 = in.getStringExtra(KEY_COST);

TextView txttitle1 = (TextView) findViewById(R.id.item_name);
TextView txtcost1 = (TextView) findViewById(R.id.item_cost);

txttitle1.setText(title1);
txtcost1.setText(cost1);    

}
}

解决方案

To get the View Cart to update, you need to store the data centrally. Best to use an SQLite database. Then you can update this database when a user adds to the cart, then when viewing the cart, you can read from the database.

这篇关于我想让用户通过动作顺序添加多个项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆