Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:ListView中使用复选框的空指针异常_Java_Android_Listview_Checkbox - Fatal编程技术网

Java Android:ListView中使用复选框的空指针异常

Java Android:ListView中使用复选框的空指针异常,java,android,listview,checkbox,Java,Android,Listview,Checkbox,我是新手安卓。我已经创建了一个arraylist、ListView和一个复选框。我打算在文本视图中获取文本,然后在复选框中创建一个字符串。然而,当选中复选框时,我在复选框处得到一个空指针异常。帮帮我,谢谢你的帮助:- private ArrayList<String>simpan_makanan; private void SimpanMakanan() { LocalDate tanggal = new LocalDate(); ArrayList<Gizi

我是新手安卓。我已经创建了一个arraylist、ListView和一个复选框。我打算在文本视图中获取文本,然后在复选框中创建一个字符串。然而,当选中复选框时,我在复选框处得到一个空指针异常。帮帮我,谢谢你的帮助:-

private ArrayList<String>simpan_makanan;

private void SimpanMakanan() {
    LocalDate tanggal = new LocalDate();
    ArrayList<Gizi> array = DataGizi.ambil(getActivity()).AmbilGizi();
    for(String t_makanan : simpan_makanan){
        AturVitamin vitamin = DataVitamin.get(t_makanan);
        AturMineral mineral = DataMineral.get(t_makanan);
        AturOther lain2 = DataLain2.get(t_makanan);
        for(Gizi g : array){
            if(vitamin.ambilJumlahVitamin().containsKey(g.toString().toUpperCase()) &&
                    vitamin.ambilJumlahVitamin().get(g.toString().toUpperCase()) !=0){
                    g.tambahnilai(vitamin.ambilJumlahVitamin().get(g.toString().toUpperCase()), tanggal);
                    g.tambahsumbermakan(t_makanan);
                }
                else if (mineral.ambilJumlahMineral().containsKey(g.toString().toUpperCase()) &&
                    mineral.ambilJumlahMineral().get(g.toString().toUpperCase()) !=0 ) {
                    g.tambahnilai(mineral.ambilJumlahMineral().get(g.toString().toUpperCase()), tanggal);
                    g.tambahsumbermakan(t_makanan);
                }
                else if (lain2.ambilJumlahJenisLain2().containsKey(g.toString().toUpperCase()) &&
                    lain2.ambilJumlahJenisLain2().get(g.toString().toUpperCase()) !=0) {
                    g.tambahnilai(lain2.ambilJumlahJenisLain2().get(g.toString().toUpperCase()), tanggal);
                    g.tambahsumbermakan(t_makanan);
                }  else {
                }
        }
    }
    DataGizi.ambil(getActivity()).aturGizi(array);
}
聚酯适配器

private class MyListAdapter extends ArrayAdapter<Makanan> {
    public MyListAdapter(List<Makanan> a_makanan) {
        super(getActivity(),0, a_makanan);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View itemView = convertView;
        if (itemView == null) {
            itemView = getActivity().getLayoutInflater().inflate(R.layout.list_makanan, null);
        }

        Makanan makan = a_makanan.get(position);

        ImageView gambar_makanan = (ImageView)itemView.findViewById(R.id.imageView);
        gambar_makanan.setImageResource(makan.getIconID());

        TextView teks_manfaat = (TextView) itemView.findViewById(R.id.textView2);
        teks_manfaat.setText(makan.getName());

        TextView teks_judul = (TextView) itemView.findViewById(R.id.textView1);
        teks_judul.setText(makan.AmbilManfaat());
        //final String string_makanan = (String) teks_judul.getText();
        final String t_makanan = teks_judul.getText().toString().toUpperCase();

        Button cek_gizi = (Button) itemView.findViewById(R.id.tombol_cek_nilai_gizi);
        cek_gizi.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                JalankanActivityMenggunakanIntent(t_makanan);
            }
        });

        if (NamaKategoriMakanan.equals("BUAH-BUAHAN")){
            itemView.setBackgroundColor(Color.parseColor("#ed242d"));
            }
            else if (NamaKategoriMakanan.equals("SAYURAN")){
                itemView.setBackgroundColor(Color.parseColor("#5cb133"));
            }
            else if (NamaKategoriMakanan.equals("OLAHAN SUSU")){
                itemView.setBackgroundColor(Color.parseColor("#1da6d7"));
            }
            else if (NamaKategoriMakanan.equals("BIJI-BIJIAN")){
                itemView.setBackgroundColor(Color.parseColor("#f6903e"));
            }
            else if (NamaKategoriMakanan.equals("DAGING DAN TELUR")){
                itemView.setBackgroundColor(Color.parseColor("#782f94"));
            }

        CheckBox cekbox_makanan = (CheckBox)itemView.findViewById(R.id.cekbox_makanan);
        cekbox_makanan.setChecked(simpan_makanan.contains(t_makanan));
        cekbox_makanan.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

           @Override
           public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
               if (isChecked) {
                   simpan_makanan.add(t_makanan);
               } else {
                   simpan_makanan.remove(t_makanan);
               }
           }
       });

        return itemView;
    }               
}
完整日志:

08-01 14:06:17.983:E/AndroidRuntime5328:致命异常:主 08-01 14:06:17.983:E/AndroidRuntime5328:java.lang.NullPointerException 08-01 14:06:17.983:E/AndroidRuntime5328:at id.yoehanz.apagis.KategoriMakananFragment.simpanmakanankanategorimakananfragment.java:305 08-01 14:06:17.983:E/AndroidRuntime5328:at id.yoehanz.apagis.KategoriMakananFragment.access$3Categorimakananfragment.java:301 08-01 14:06:17.983:E/AndroidRuntime5328:at id.yoehanz.apagis.KategoriMakananFragment$1.onClickKategoriMakananFragment.java:285

误差线

id.yoehanz.apagis.KategoriMakananFragment.simpanmakanankanategorimakananfragment.java:305


代码中的哪一行是305?请添加list_makanan.xmlalso@vipulmittal:第305行:维生素=数据维生素.gett_makanan@Athul list_makanan.xml已经存在