android - onOptionsItemSelected(); 一次调用两个以上的动作(相同的 ID)
问题描述
我有一个菜单,其中包含运行自定义方法的操作,它们只在每个操作中调用,所以它们不应该同时完成。问题是,使用我的代码,任何单击的选项也会触发我的操作"action_filtrar_hora", and I can't find why maybe it's the result of the boolean method
onOptionsItemSelected`?
这是我的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_sign_out) {
mAuth.signOut();
mGoogleApiClient.clearDefaultAccountAndReconnect();
//signOut();
startActivity(new Intent(this,SignIn.class));
finish();
}
if(id == R.id.action_cambiar_ciudad)
{
seleccionarCiudad();
}
if(id == R.id.action_cambiar_destino)
{
seleccionarDestino();
}
if(id == R.id.mis_viajes);
{
buildRecyclerView();
}
if(id == R.id.action_filtrar_hora)
{
dialogFiltrarHora();
}
if(id == R.id.action_punto_recogida_ida)
{
dialogEstablecerPuntoRecogidaIda();
}
if(id == R.id.action_punto_recogida_vuelta)
{
dialogEstablecerPuntoRecogidaVuelta();
}
return true;
}
在调试时,我发现这些操作具有不同的 ID,但由于某种我无法理解的原因,它们似乎在两者上都执行,在此先感谢。
解决方案
显然,答案是构建一个 switch 语句而不是多个 if,但是为什么它一次执行两个动作仍然没有意义。
推荐阅读
- php - 谷歌索引 404 页的 wordpress
- spring-boot - Spring JMS 和本机 IBM MQ 库之间总消息长度的差异
- sed - Sed命令在模式匹配时添加一个字符?
- cox-regression - 关于 R 中的生存分析
- sql - SELECT DISTINCT ON (col) * 有效吗?
- ruby-on-rails - NameError: 未初始化的常量 RuboCop::Error
- javascript - 反应我如何重定向主页?
- openpyxl - 如何遍历 Excel 文件和 ID 彩色单元格值
- html - 悬停时按钮不改变颜色
- cpu-architecture - 空间局部性未命中数