-2

Any help me, i have error like this on android studio :

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.refresh.pos.domain.sale.kas.addKas1(java.lang.String, double)' on a null object reference at com.refresh.pos.ui.sale.AddKasDialogFragment$1.onClick(AddKasDialogFragment.java:81) at android.view.View.performClick(View.java:5721) at android.widget.TextView.performClick(TextView.java:10936) at android.view.View$PerformClick.run(View.java:22620) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:7406) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)06-21 19:25:07.641 22109-22109/com.refresh.pos I/Process: Sending signal. PID: 22109 SIG: 9

this AddKasDialogFragment.java

public class AddKasDialogFragment extends DialogFragment {
    private EditText pengeluaran;
    private kas kas;
    private EditText ketBox;
    private EditText pemasukanBox;
    private Button confirmButton;
    private Button clearButton;
    private UpdatableFragment fragment;
    private Resources res;

    public AddKasDialogFragment(UpdatableFragment fragment) {

        super();
        this.fragment = fragment;
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        View v = inflater.inflate(R.layout.layout_addkas, container,
                false);

        res = getResources();

        pengeluaran = (EditText) v.findViewById(R.id.pengeluaranBox);
        ketBox = (EditText) v.findViewById(R.id.ketBox);
        pemasukanBox = (EditText) v.findViewById(R.id.pemasukanBox);
        confirmButton = (Button) v.findViewById(R.id.confirmButton);
        clearButton = (Button) v.findViewById(R.id.clearButton);

        initUI();
        return v;
    }
    private void initUI() {


        confirmButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                if (pengeluaran.getText().toString().equals("")
                        || ketBox.getText().toString().equals("")
                        || pemasukanBox.getText().toString().equals("")) {

                    Toast.makeText(getActivity().getBaseContext(),
                            res.getString(R.string.please_input_all), Toast.LENGTH_SHORT)
                            .show();

                } else {
                    if (pemasukanBox.getText().toString() == null) {

                        Toast.makeText(getActivity().getBaseContext(),
                                res.getString(R.string.please_input_all), Toast.LENGTH_SHORT)
                                .show();

                    } else {
                        String KetBox = ketBox.getText().toString();
                        boolean success1 = kas.addKas1(KetBox, Double.parseDouble(pemasukanBox.getText()
                                .toString()));
                        if (success1) {
                            Toast.makeText(getActivity().getBaseContext(),
                                    res.getString(R.string.success) + ", "
                                            + ketBox.getText().toString(),
                                    Toast.LENGTH_SHORT).show();

                            fragment.update();
                            clearAllBox();
                            AddKasDialogFragment.this.dismiss();

                        } else {
                            Toast.makeText(getActivity().getBaseContext(),
                                    res.getString(R.string.fail),
                                    Toast.LENGTH_SHORT).show();
                        }
                    }

                }
            }
        });

        clearButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(ketBox.getText().toString().equals("") && pengeluaran.getText().toString().equals("") && pemasukanBox.getText().toString().equals("")){
                    AddKasDialogFragment.this.dismiss();
                } else {
                    clearAllBox();
                }
            }
        });
    }
    private void clearAllBox() {
        ketBox.setText("");
        pengeluaran.setText("");
       pemasukanBox.setText("");
    }
}

this Kas.java

package com.refresh.pos.domain.sale;
import java.util.List;

import com.refresh.pos.techicalservices.kas.KasDao;
public class kas {
    private KasDao kasDao;

    public kas(KasDao kasDao) {
        this.kasDao = kasDao;
    }

    public boolean addKas1(String keterangan, double jumlah) {

        KasDet kasdet = new KasDet(keterangan, jumlah);
        int id = kasDao.addKas(kasdet);
        return id != -1;
    }

}
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115

2 Answers2

1

error belongs to kas which is not initialise

 else {
                    String KetBox = ketBox.getText().toString();
                    kas = new kas(); //change here

                    boolean success1 = kas.addKas1(KetBox, Double.parseDouble(pemasukanBox.getText()
                            .toString()));
                    if (success1) {
                        Toast.makeText(getActivity().getBaseContext(),
                                res.getString(R.string.success) + ", "
                                        + ketBox.getText().toString(),
                                Toast.LENGTH_SHORT).show();

                        fragment.update();
                        clearAllBox();
                        AddKasDialogFragment.this.dismiss();

                    }
Omkar
  • 3,040
  • 1
  • 22
  • 42
0

Read your error. kas is null because you never initalized it.

Zun
  • 1,553
  • 3
  • 15
  • 26
  • i had initialize kas on kas.java : **public kas(KasDao kasDao) { this.kasDao = kasDao; }** – adi romariardi Jun 22 '18 at 08:04
  • No, that is not how you initalize an object. What you wrote is the constructor of the kas object. You need to initalize it like this: kas kas = new kas(kasDao); – Zun Jun 22 '18 at 08:07
  • where i write inilitialize kas kas = new kas(kasDao); ? – adi romariardi Jun 22 '18 at 08:43
  • I think you need to learn the basics of Java first before you try Android. It's up to you where you initalize Kas, as long as you initalize it BEFORE accessing it. – Zun Jun 22 '18 at 08:44