如何从操作栏下拉导航菜单中删除项目

时间:2014-07-30 20:13:16

标签: android android-actionbar

我有一个带有操作栏的应用程序,该操作栏具有下拉导航功能(如微调器)。是否可以以编程方式从列表中删除项目?

编辑:相关代码:

// Set up the dropdown list navigation in the action bar.
        actionBar.setListNavigationCallbacks(
        // Specify a SpinnerAdapter to populate the dropdown list.
                new ArrayAdapter<String>(getActionBarThemedContextCompat(),
                        android.R.layout.simple_list_item_1,
                        android.R.id.text1, list), this);

1 个答案:

答案 0 :(得分:1)

  1. 通过调用 getActionBar();
  2. 获取ActionBar实例
  3. 删除ActionBar中的应用名称 setDisplayShowTitleEnabled(false);
  4. 将操作栏导航设为列表
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
  5. 创建一个Arraylist并在菜单中添加您想要进入Spinner的项目。
  6. 将List绑定到ArrayAdapter。
  7. 将适配器设置为操作栏
  8. 现在创建了动作栏中的微调器。
  9. 删除项目只需删除列表中的项目并调用 notifyDataSetChanged(),然后刷新适配器并反映在UI上。
  10. 以下是移除操作栏中(Spinner )

    中项目的完整代码
    import java.util.ArrayList;
    import java.util.List;
    
    import android.app.ActionBar;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.ArrayAdapter;
    
    public class MainActivity extends Activity implements
            ActionBar.OnNavigationListener {
    
        ActionBar actionBar;
        List spinnerList;
        ArrayAdapter adapter;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            actionBar = getActionBar();
            actionBar.setDisplayShowTitleEnabled(false);
            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    
             spinnerList = new ArrayList();
            spinnerList.add("Item1");
            spinnerList.add("Item2");
            spinnerList.add("Item3");
            spinnerList.add("Item4");
             adapter = new ArrayAdapter(this,
                    android.R.layout.simple_spinner_item, spinnerList);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            actionBar.setListNavigationCallbacks(adapter, this);
            removeItemInActionBar(2);
    
        }
    
        public void removeItemInActionBar(int position) {
            spinnerList.remove(position);
            adapter.notifyDataSetChanged();
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {
            // TODO Auto-generated method stub
            return false;
        }
    }