android - 未调用 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);
}
}
解决方案
你忘了开始意图
你的代码会是这样的。
@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);
}
推荐阅读
- reactjs - 未调用 Action Reducer 函数
- drupal - 根据块上的内容标题检索视频
- javascript - Chrome DevTools 不显示 .js 文件
- json - 将大量 JSON 数据从文件解析为 JAVA 对象,导致堆内存不足异常
- angular - 角度 8:在无法访问的元素上监听事件
- javascript - 如何在 javascript 扑克游戏中识别 Full House 和 Two pair
- javascript - Javascript链接列表指针
- angular - 在视图准备好之前修改事件处理程序中的视图
- node.js - 在 sequelize 5 中从 findOne 访问实例方法
- python - 有没有更好的方法来计算进入 intreval 的频率?