我開發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