• 010、Spinner使用


    Spinner是android自带的下拉菜单控件,可以自定义,关键方法为其适配器Adapter方法setDropDownViewResource()将定义好的显示风格layout.xml作为参数传入
            tv = (TextView) findViewById(R.id.tv);
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, strs);
            spinner = (Spinner) findViewById(R.id.spinner);
            adapter.setDropDownViewResource(R.layout.myspinner_dropdown);
            spinner.setAdapter(adapter);
            spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
     
                @Override
                public void onItemSelected(AdapterView<?> parent, View view,
                        int position, long id) {
                    tv.setText("您选择的是:"+strs[position]);
                    parent.setVisibility(View.VISIBLE);
                }
     
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });
            spinner.setOnFocusChangeListener(new OnFocusChangeListener() {
                
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                }
            });
            animation = AnimationUtils.loadAnimation(this, R.anim.my_anim);
            spinner.setOnTouchListener(new OnTouchListener() {
                
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    v.startAnimation(animation);
                    v.setVisibility(View.INVISIBLE);
                    return false;
                }
            });
     
     
    可以动态的更改Spinner内显示是条数,但此时构造Adapter时需要传入List集合,而不能使数组了。
        private void init() {
            strs.add("北京");
            strs.add("天津");
            strs.add("上海");
            tv = (TextView) findViewById(R.id.tv);
            et = (EditText) findViewById(R.id.et);
            adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, strs);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner = (Spinner) findViewById(R.id.spinner);
            spinner.setAdapter(adapter);
        }
     
        private void setListeners() {
            findViewById(R.id.bt_add).setOnClickListener(new OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    String trim = et.getText()
                            .toString().trim();
                    if (TextUtils.isEmpty(trim)) {
                        Toast.makeText(ArrayListActivity.this, "输入不能为空哦", 0).show();
                    } else {
                        if (strs.contains(trim)) {
                            Toast.makeText(ArrayListActivity.this, "添加的内容已经存在啦", 0)
                                    .show();
                        } else {
                            adapter.add(trim);
                            spinner.setSelection(adapter.getPosition(trim));
                            et.setText("");
                        }
                    }
                }
            });
            findViewById(R.id.bt_remove).setOnClickListener(new OnClickListener() {
     
                @Override
                public void onClick(View v) {
                    if (adapter.getCount() == 0) {
                        Toast.makeText(ArrayListActivity.this, "已经是空的啦", 0).show();
                    } else {
                        adapter.remove(spinner.getSelectedItem().toString());
                        et.setText("");
                        if (adapter.getCount() == 0) {
                            tv.setText("");
                        }
                    }
                }
            });
     
            spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
     
                @Override
                public void onItemSelected(AdapterView<?> parent, View view,
                        int position, long id) {
                    tv.setText(parent.getSelectedItem().toString());
                }
     
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });
        }
     
    setDropDownViewResource主要是设置User单击Spinner后出现的下拉菜单样式,Android提供有两种基本的样式:
    *android.R.layout.simple_spinner_item:TextView的下拉菜单
    *android.R.layout.simple_spinner_dropdown_item:除了有TExtView,右边还有radio的下拉菜单。
     
     
    Animation主要有两种动态方式:一种是tweened animation(渐变动画),另一种是frame by frame animation(画面转换动画)。tweened animation有以下4种基本转换方式:
    *AlphaAnimation(transparency changes):透明度转换
    *RotateAnimation(rotations):旋转转换
    *ScaleAnimation(growing or shrinking):缩放转换
    *TranslateAnimation(position changes):位置转换
    定义好动画xml后,用AnimationUtils.loadAnimation将动画加载,并试图在想要加上动态效果的组件中使用startAnimation方法。
     
  • 相关阅读:
    系列化与反系列化
    改造一下C# Substring()函数
    在C#后端处理一些结果然传给前端Javascript或是jQuery
    ASP.NET MVC传送参数至服务端
    MySQL 操作命令梳理(3)-pager
    MySQL 操作命令梳理(2)-alter(update、insert)
    redis持久化策略梳理及主从环境下的策略调整记录
    php-redis扩展模块安装记录
    centos下部署redis服务环境及其配置说明
    Iptables 规则用法小结
  • 原文地址:https://www.cnblogs.com/zyh-blog/p/3324508.html
Copyright © 2020-2023  润新知