我开发Android 3+Android操作栏,onNavigationItemSelected
在我的行动吧,我有一个下拉列表(见how to hide/unhide the actionbar list on android 3?的下拉我打算)。问题是我需要在用户选择某些内容时执行某些操作,但Android会在绘制视图时调用onNavigationItemSelected(),因此实际上没有发生选择。
我该如何检测用户是否真的按了一些东西,而不是来自android的假电话?
public class ListDittaListener implements OnNavigationListener{
private BaseActivity activity;
private ListDittaListener()
{
}
public ListDittaListener(BaseActivity activity)
{
this.activity = activity;
}
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId)
{
MyApp appState = ((MyApp)this.activity.getApplicationContext());
appState.setDittaSelezionata((int) itemId);
SharedPreferences settings = this.activity.getSharedPreferences(MyApp.PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("ditta_id_selezionata", (int) itemId);
////////restart activity this.activity.recreate();
return false;
}
}
谢谢,但就像我在赏金描述中写道的,“我想避免使用计数器和忽略第一个电话“,这看起来更像是一个黑客,我想弄清楚为什么发生在第一个地方 – max4ever 2012-03-14 08:15:40
我有同样的问题,这是非常恼人的黑客这样。这种行为有目的吗? – 2012-08-15 21:51:10
我使用此解决方案来防止碎片不必要地在屏幕方向改变并丢失其状态时重新创建两次。请参阅[这里](http://stackoverflow.com/a/14295474/963396)。 – 2013-01-12 17:24:35