onOptionsItemSelected (); вызов более двух действий одновременно (один и тот же идентификатор) - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть меню с действиями, которые запускают пользовательские методы, они вызываются только в каждом действии, поэтому они не должны выполняться одновременно.Проблема в том, что с моим кодом любая опция, нажатая, вызывает и мое действие "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;
}

Во время отладки я обнаружил, что эти действия имеют разныеИдентификаторы, но они, кажется, выполняются на обоих по какой-то причине, которую я не могу понять, заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

Очевидно, что ответом было построение оператора switch вместо нескольких if, но все равно не имеет смысла, почему он выполнял два действия одновременно.

0 голосов
/ 14 сентября 2018

Я думаю, вам следует использовать здесь переключатель.Но можете ли вы предоставить более подробную информацию, потому что это не эффективно, чтобы понять, что происходит в вашем приложении!спасибо

...