关于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);
}
}
图片说明
图片说明
图片说明
图片说明
以上就是问题所在,实训的练习,目前这个加入购物车无法完成,总是出现最后的那个情况,发现说是不能检测到值,但是换了好几种方法直接给最后写上值都没法检测到,想知道怎么改。

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

写法很奇特。 看一下你的sumprice有没有问题, 再断点看一下你的total值。 这种错误仔细一点很容易找到。

原因就是你调用sumprice在前,sumprice的赋值在后呀
把这一句
sumprice= (TextView)findViewById(R.id.ordertotalprice);//总价格
放在
mOrderinfo = getOrderData();
之前
话说你们老师这么写的代码吗,有点不敢恭维啊

同楼上所说,你的代码顺序错了
如果改后还报错,请检查你的activity_cart布局里面有没有ordertotalprice这个id

把sumprice.setText(total);改成

sumprice.setText(total+“”);