Primordial onOptionsItemSelected de SherlockFragmentActivity


Ayer, encontré una gran biblioteca que me permitió tener un "menú de facebook" con un botón en la parte superior izquierda de una barra de acción que, cuando se presiona, se deslizaría en un menú de elementos de la izquierda.

El problema es que deseo hacer uso de la biblioteca ActionBarSherlock también para asegurarme de que mi aplicación es compatible con la barra de acciones. Al usar la biblioteca, entre otras cosas, necesito sobrescribir Onoptisitemseleccionado como tal:

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    int id = item.getItemId();

    if (id == android.R.id.home) {

        rbmView.toggleMenu();

        return true;

    } else {
        return super.onOptionsItemSelected(item);
    }
}

Ahora entré en la biblioteca y vio que el desarrollador ha hecho onOptionsItemSelected final. Lo quité y traté de sobrescribirlo de nuevo solo para encontrar que el producto era que cada vez que presiono el botón no pasa nada. Nada en absoluto.

¿Alguna idea de cómo usaría la biblioteca darvds_ribbonmenu junto con actionbarsherlock?

Author: CodePrimate, 2012-06-06

2 answers

Resulta que cuando se utiliza ABS tendrá que especificar el espacio de nombres de MenuItem para asegurarse de que está sobreescribiendo el método correcto. Mi solución fue la siguiente :

@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) 
{
    int id = item.getItemId();
    Log.d("item ID : ", "onOptionsItemSelected Item ID" + id);
    if (id == android.R.id.home) {
        rbmView.toggleMenu();

        return true;

    } else {
        return super.onOptionsItemSelected(item);
    }
}
 50
Author: CodePrimate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-06 08:00:33

Cambie import android.view.MenuItem; por import com.actionbarsherlock.view.MenuItem;. De lo contrario, solo estás usando un MenuItem completamente diferente al que estás importando.

 17
Author: Muz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-31 05:52:38