zoukankan      html  css  js  c++  java
  • actionbar spinner-用法实例

    今天需要更改一个actionbar上的spinner的字体颜色,结果试了好长时间都没有解决,最后才发现,原来他是在代码下增加的一个textview,然后使用adapter加载的,并不是直接用framework下的布局。现在总结下spinner的使用方法,直接见下面的代码

    1)首先要有一个spinneradapter来跟spinner进行数据加载

     private BaseAdapter mStackAdapter = new BaseAdapter() {
            @Override
            public int getCount() {
                return mState.stack.size();
            }
    
            @Override
            public DocumentInfo getItem(int position) {
                return mState.stack.get(mState.stack.size() - position - 1);
            }
    
            @Override
            public long getItemId(int position) {
                return position;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) {
                    convertView = LayoutInflater.from(parent.getContext())
                            .inflate(R.layout.item_title, parent, false);
                }
    
                final TextView title = (TextView) convertView.findViewById(android.R.id.title);
                final DocumentInfo doc = getItem(position);
    
                if (position == 0) { 
                    final RootInfo root = getCurrentRoot();
                    title.setText(root.title);
                } else {
                    title.setText(doc.displayName);
                }    
    
                // No padding when shown in actionbar
                convertView.setPadding(0, 0, 0, 0);
                return convertView;
            }    
    @Override
            public View getDropDownView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) {
                    convertView = LayoutInflater.from(parent.getContext())
                            .inflate(R.layout.item_title, parent, false);
                }
    
                final ImageView subdir = (ImageView) convertView.findViewById(R.id.subdir);
                final TextView title = (TextView) convertView.findViewById(android.R.id.title);
                final DocumentInfo doc = getItem(position);
    
                if (position == 0) {
                    final RootInfo root = getCurrentRoot();
                    title.setText(root.title);
                    subdir.setVisibility(View.GONE);
                } else {
                    title.setText(doc.displayName);
                    subdir.setVisibility(View.VISIBLE);
                }
    
                return convertView;
            }
        };

    上面有两个比较重要的方法

    一个是getview:这个方法是加载提示prompt用的

    一个是getDropView:这个是加载下拉框用的

    2)添加dropview点击监听事件

        private OnNavigationListener mStackListener = new OnNavigationListener() {
            @Override
            public boolean onNavigationItemSelected(int itemPosition, long itemId) {
                if (mIgnoreNextNavigation) {
                    mIgnoreNextNavigation = false;
                    return false;
                }    
    
                while (mState.stack.size() > itemPosition + 1) { 
                    mState.stackTouched = true;
                    mState.stack.pop();
                }    
                onCurrentDirectoryChanged(ANIM_UP);
                return true;
            }    
        }; 

    3)添加spinneradapter跟dropview

    actionBar.setListNavigationCallbacks(mStackAdapter, mStackListener);
    actionBar.setSelectedNavigationItem(mStackAdapter.getCount() - 1);
  • 相关阅读:
    angular-ui-bootstrap-modal必须要说的几个点(转)
    [MySQL]
    [FORWARD]ODBC 各种数据库连接串
    从零开始学习前端JAVASCRIPT — 12、JavaScript面向对象编程
    从零开始学习前端JAVASCRIPT — 11、JavaScript运动模型及轮播图效果、放大镜效果、自适应瀑布流
    从零开始学习前端JAVASCRIPT — JavaScript中this指向的四种情况
    从零开始学习前端JAVASCRIPT — 10、JavaScript基础ES6(ECMAScript6.0)
    Demo—cookie电商购物车
    从零开始学习前端JAVASCRIPT — 9、JavaScript基础RegExp(正则表达式)
    Demo—标题左右两侧的对等横线
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_barspinner_150425131.html
Copyright © 2011-2022 走看看