首页 > 解决方案 > 未调用 onOptionsItemSelected,因此我无法转到下一页意图

问题描述

我想问我想在页面标题上设置菜单添加按钮,我已经创建了图标菜单布局并将其设置为 java,但是当我运行它时,它无法在该按钮内完成工作(如验证器和意图) . 我已经尝试调试,但它没有通过断点。这是图像和代码。

页面标题按钮

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_tambah, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.btn_tambah:
                boolean isValidatorsPassed = true;

                if (TextUtils.isEmpty(etNamaDokter.getText().toString())) {
                    isValidatorsPassed = false;

                    etNamaDokter.setError("Harap isi nama dokter");
                }

                if (TextUtils.isEmpty(etTanggalLahirDokter.getText().toString())) {
                    isValidatorsPassed = false;

                    etTanggalLahirDokter.setError("Harap isi tanggal lahir dokter");
                }

                if (TextUtils.isEmpty(etNoHp.getText().toString())) {
                    isValidatorsPassed = false;

                    etNoHp.setError("Harap isi nomor HP / telepon rumah dokter");
                }

                if (TextUtils.isEmpty(etJadwalPraktek.getText().toString())) {
                    isValidatorsPassed = false;

                    etJadwalPraktek.setError("Harap isi jadwal praktek dokter yang bersangkutan");
                }

                if (isValidatorsPassed) {
                    String namaDokter, tanggalLahirDokter, noHpDokter, jadwalPraktekDokter;

                    namaDokter = etNamaDokter.getText().toString();
                    tanggalLahirDokter = etTanggalLahirDokter.getText().toString();
                    noHpDokter = etNoHp.getText().toString();
                    jadwalPraktekDokter = etJadwalPraktek.getText().toString();

                    Intent intentBarcodeGenerator = new Intent(TambahDokterActivity.this, BarcodeGeneratorActivity.class);
                    intentBarcodeGenerator.putExtra("nama dokter", namaDokter);
                    intentBarcodeGenerator.putExtra("tanggal lahir", tanggalLahirDokter);
                    intentBarcodeGenerator.putExtra("no hp", noHpDokter);
                    intentBarcodeGenerator.putExtra("jadwal praktek", jadwalPraktekDokter);
                }

                return true;

            default:

                return super.onOptionsItemSelected(item);
        }
    }

标签: android

解决方案


你忘了开始意图

你的代码会是这样的。

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_tambah, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.btn_tambah:
                boolean isValidatorsPassed = true;

                if (TextUtils.isEmpty(etNamaDokter.getText().toString())) {
                    isValidatorsPassed = false;

                    etNamaDokter.setError("Harap isi nama dokter");
                }

                if (TextUtils.isEmpty(etTanggalLahirDokter.getText().toString())) {
                    isValidatorsPassed = false;

                    etTanggalLahirDokter.setError("Harap isi tanggal lahir dokter");
                }

                if (TextUtils.isEmpty(etNoHp.getText().toString())) {
                    isValidatorsPassed = false;

                    etNoHp.setError("Harap isi nomor HP / telepon rumah dokter");
                }

                if (TextUtils.isEmpty(etJadwalPraktek.getText().toString())) {
                    isValidatorsPassed = false;

                    etJadwalPraktek.setError("Harap isi jadwal praktek dokter yang bersangkutan");
                }

                if (isValidatorsPassed) {
                    String namaDokter, tanggalLahirDokter, noHpDokter, jadwalPraktekDokter;

                    namaDokter = etNamaDokter.getText().toString();
                    tanggalLahirDokter = etTanggalLahirDokter.getText().toString();
                    noHpDokter = etNoHp.getText().toString();
                    jadwalPraktekDokter = etJadwalPraktek.getText().toString();

                    Intent intentBarcodeGenerator = new Intent(TambahDokterActivity.this, BarcodeGeneratorActivity.class);
                    intentBarcodeGenerator.putExtra("nama dokter", namaDokter);
                    intentBarcodeGenerator.putExtra("tanggal lahir", tanggalLahirDokter);
                    intentBarcodeGenerator.putExtra("no hp", noHpDokter);
                    intentBarcodeGenerator.putExtra("jadwal praktek", jadwalPraktekDokter);

                    startActivity(intentBarcodeGenerator); //Add this line here
                }

                return true;

            default:

                return super.onOptionsItemSelected(item);
        }

推荐阅读