这是我几年前写的app,现在需要从重新用上,但是加载进Studio里之后多了写本来没有的bug。
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.nero.thecashregistersystem.R;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CartAdapter extends BaseAdapter {
private Context context;
private List<HashMap<String, String>> dataList ;
private ViewHolder vh;
private Map<String, Integer> pitchOnMap;
private RefreshPriceInterface refreshPriceInterface;
public CartAdapter(Context context, List<HashMap<String, String>> list){
this.context=context;
this.dataList=list;
}
......
//一下是报错的代码
if(pitchOnMap.get(dataList.get(position).get("goods_number"))==0)
vh.checkBox.setChecked(false);
else vh.checkBox.setChecked(true);
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.Map.size()' on a null object reference
at com.example.nero.thecashregistersystem.Adapter.CartAdapter.getView(CartAdapter.java:75)
//CartAdapter.java:75:
if(pitchOnMap.get(dataList.get(position).get("goods_number"))==0)
datalist不为空 datalist.get(position)不为空
(dataList.get(position).get("goods_number")不为空
空指针:pitchOnMap.get(dataList.get(position).get("goods_number"))
尝试过pitchOnMap.size() 、pitchOnMap.isEmpty() 、pitchOnMap.containKey() 都报了空指针NullPointerException
T_T 解决空指针
空指针还能有啥疑问,就是没有初始化呗,你是在哪给pitchOnMap赋值的?