操作栏下拉列表

时间:2014-03-15 16:41:08

标签: android android-actionbar

在操作栏中看到下拉列表的许多解决方案,我发现这个解决方案非常简单易用。但是......它有一个缺陷。

首先按下拉列表(在操作栏中)给出: 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; 
 }
}

2 个答案:

答案 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()注释。尝试添加它,它将解决您的问题。