Java Android:ListView中使用复选框的空指针异常
我是新手安卓。我已经创建了一个arraylist、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
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已经存在