在操作栏中看到下拉列表的许多解决方案,我发现这个解决方案非常简单易用。但是......它有一个缺陷。
首先按下拉列表(在操作栏中)给出: unregisterIRListener()被调用(6次)
选择1个菜单项给出: sendUserActionEvent()mView == null
当然没有动作开始。
你能帮我解决这个漏洞吗?它将向我学习更多关于Android编程的知识,并且可以经常使用这个简单的解决方案。
public class MainActivity extends FragmentActivity implements ActionBar.OnNavigationListener {
public static String[] actionBarActions = new String[] { "Location tracker" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.activity_main);
// Actionbar dropdown adapter
ArrayAdapter<String> actionBarAdapter = new ArrayAdapter<String>( getActionBar().getThemedContext(),
android.R.layout.simple_spinner_dropdown_item, actionBarActions);
// Enabling dropdown list navigation for the action bar
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
// Setting dropdown items and item navigation listener for the actionbar
getActionBar().setListNavigationCallbacks( actionBarAdapter, this);
}
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
System.out.println( " *** Menu item pressed " + actionBarActions[itemPosition]);
return false;
}
}
答案 0 :(得分:0)
感谢Aashir - &gt;它现在有效。
我忘了添加@Override。所以,代码是:
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
System.out.println( " *** Menu item pressed " + actionBarActions[itemPosition]);
return false;
}
答案 1 :(得分:0)
您未在@Override
使用onNavigationItemSelected()
注释。尝试添加它,它将解决您的问题。