Saya mengalami kesulitan dalam mencari tahu apa yang salah dengan kode saya, Kode saya berjalan ketika pendengar onclick belum diterapkan tetapi setelah saya menerapkan pendengar onclick itu macet.

 public class menu extends AppCompatActivity implements View.OnClickListener {


    private CardView assess, profile, chatbot, breathing;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);

        assess = (CardView) findViewById(R.id.assess);
        profile = (CardView) findViewById(R.id.profile);
        chatbot = (CardView) findViewById(R.id.chatbot);
        breathing = (CardView) findViewById(R.id.breathing);

//        assess.setOnClickListener(this);
//        profile.setOnClickListener(this);
//        chatbot.setOnClickListener(this);
//        breathing.setOnClickListener(this);






        }
        
    @Override
    public void onClick(View v) {

//        Intent i;
//
//        switch (v.getId()){
//
//
//            case R.id.assess :
//                i = new Intent(this,depression_assessment.class);
//                startActivity(i);
//                break;






        }


    }
//}

Ketika saya mencoba men-debug kode, baris-baris ini adalah penyebab crash.

//        assess.setOnClickListener(this);
//        profile.setOnClickListener(this);
//        chatbot.setOnClickListener(this);
//        breathing.setOnClickListener(this);

Di sinilah masalahnya dimulai karena kode berfungsi meskipun onclick kosong. Ketika saya memeriksa log itu menunjukkan kesalahan ini this

java.lang.RuntimeException: Tidak dapat memulai aktivitas ComponentInfo{com.example.thesis/com.example.thesis.menu}: java.lang.NullPointerException: Mencoba memanggil metode virtual 'void androidx.cardview.widget.CardView.setOnClickListener( android.view.View$OnClickListener)' pada referensi objek nol

1
anon jackfruit 4 April 2021, 19:43

1 menjawab

Jawaban Terbaik

Anda belum menunjukkan kode yang cukup, tetapi ini mungkin karena alasan server:

Baris kode breathing = (CardView) findViewById(R.id.breathing); ini akan mencari tampilan dengan id breathing di dalam tata letak aktivitas Anda, dan menurut kesalahan itu adalah nol, yang berarti ia tidak menemukannya dalam tata letak aktivitas yang sama, jadi buat pastikan cardView Anda ada dalam tata letak aktivitas ini. Alasan lain yang mungkin adalah bahwa Anda mungkin memiliki Id duplikat di file xml Anda, dalam hal ini, temukan duplikatnya dan ganti nama Idnya.

2
Fahima Mokhtari 4 April 2021, 19:04