Wong先森 2019-07-09 08:34 采纳率: 33.3%
浏览 436

关于Android studio中的传值问题,代码是点餐app中的购物车模块,出现了不可解决的问题

package com.example.UI;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import com.example.Dao.JSharedPreferences;
import com.example.mobleorderfood.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CartActivity extends Activity {

SimpleAdapter listadapter;
List<Map<String,Object>>    mOrderinfo;
static  int total = 0;
TextView sumprice;
@Override
protected  void onCreate(Bundle saveInstanceState) {
    super.onCreate(saveInstanceState);
    setContentView(R.layout.activity_cart);
    mOrderinfo = getOrderData();
    ListView mlistview = (ListView)findViewById(R.id.OrderListView);
    sumprice = (TextView)findViewById(R.id.ordertotalprice);//总价格



    listadapter = new SimpleAdapter(CartActivity.this,mOrderinfo,R.layout.cartlistitem,
            new String[]{"dishName","num","price","sumprice"},
            new int[]{R.id.dishname,R.id.num,R.id.price,R.id.Sumprice});
    listadapter.notifyDataSetChanged();
    mlistview.setAdapter(listadapter);

}

private List<Map<String, Object>> getOrderData() {
    ArrayList<Map<String,Object>> Orderinfo = new ArrayList<Map<String, Object>>();
    Map<String,Object> map = new HashMap<String, Object>();

   map.put("dishName", JSharedPreferences.getConfigStrValue(this,"dish1_name"));
   int num =  JSharedPreferences.getConfigIntValue(this,"dish1_num",0);
   int price =  JSharedPreferences.getConfigIntValue(this,"dish1_price",0);
    map.put("num",num);
    map.put("price",price);
    map.put("sumprice",num*price);
    total+=num*price;
    Orderinfo.add(map);

    map = new HashMap<String, Object>();
    map.put("dishName", JSharedPreferences.getConfigStrValue(this,"dish2_name"));
    num =  JSharedPreferences.getConfigIntValue(this,"dish2_num",0);
    price =  JSharedPreferences.getConfigIntValue(this,"dish2_price",0);
    map.put("num",num);
    map.put("price",price);
    map.put("sumprice",num*price);
    total+=num*price;
    Orderinfo.add(map);

/*
map.put("dishName","宮保鷄丁");
map.put("num",2);
map.put("price",28);
map.put("sumprice",56);
Orderinfo.add(map);
*/
sumprice.setText(total);
}
}
图片说明
图片说明
图片说明
图片说明
以上就是问题所在,实训的练习,目前这个加入购物车无法完成,总是出现最后的那个情况,发现说是不能检测到值,但是换了好几种方法直接给最后写上值都没法检测到,想知道怎么改。

  • 写回答

5条回答 默认 最新

  • 代码的灵魂是bug! 2019-07-09 09:15
    关注

    total+=num*price; --------------->total+=(num*price);把total Log出来看有没有值

    评论

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退