一:AutoCompleteTextView自动提示

在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,这种效果在Android中是用AutoCompleteTextView实现的。
xml页面设置控件:

<AutoCompleteTextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:completionThreshold="1"        android:id="@+id/actv_main_tv"        />

activity中简单模拟一个数据源,设置适配器以及监听事件

//自动补全        actv_main_tv = (AutoCompleteTextView) findViewById(R.id.actv_main_tv);        //定义数据源        String data[]={"张三","张三丰","李四","李雷","110","114","119","120","12306"};        //适配器        ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item_actv,data);        //给控件设置适配器        actv_main_tv.setAdapter(adapter);    }

二:MultiAutoCompleteTextView多段自动补全

可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配

xml页面设置控件:

<MultiAutoCompleteTextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:completionThreshold="1"        android:id="@+id/mctv_main_mv"        />

activity中模拟一个数据源,设置适配器以及监听事件:

//多段自动补全        mctv_main_mv = (MultiAutoCompleteTextView) findViewById(R.id.mctv_main_mv);        //定义数据源        String data[]={"张三","张三丰","李四","李雷","110","114","119","120","12306"};        //适配器        ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item_actv,data);        //设置分隔符(默认,)        MultiAutoCompleteTextView.Tokenizer tokenizer=new MultiAutoCompleteTextView.CommaTokenizer();        mctv_main_mv.setTokenizer(tokenizer);        //给控件设置适配器        mctv_main_mv.setAdapter(adapter);

三:Spinner下拉列表

Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。

这里我们完成一个使用spinner的二级联动:
<1>首先设置连个下拉控件:

 <Spinner        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/sp_ld_1"        >    Spinner>    <Spinner        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/sp_ld_2"        android:layout_marginLeft="50dp"        >    Spinner>

<2>activity中模拟数据

sp_ld_1 = (Spinner) findViewById(R.id.sp_ld_1);        sp_ld_2 = (Spinner) findViewById(R.id.sp_ld_2);        pro = new String[]{"湖南","广东","山西"};        map = new HashMap>();        a = new ArrayList<>();        a.add("郴州");        a.add("永州");        map.put("湖南",a);        a = new ArrayList<>();        a.add("深圳");        a.add("韶关");        map.put("广东",a);        a = new ArrayList<>();        a.add("晋城");        a.add("长治");        a.add("运城");        a.add("太原");        map.put("山西",a);

<3>设置适配器

ArrayAdapter proa=new ArrayAdapter(this,android.R.layout.simple_list_item_1,pro);        sp_ld_1.setAdapter(proa);

<4>监听事件

 sp_ld_1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {                List myl=map.get(pro[position]);                ArrayAdapter prob=new ArrayAdapter(LD2Activity.this,android.R.layout.simple_list_item_1,myl);                sp_ld_2.setAdapter(prob);            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });

效果如图:

四:ListView

ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件

仿设置页面:

private String big[]={"网络","个人"};    private Map map=new HashMap<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_lv);        LinearLayout   ll = (LinearLayout) findViewById(R.id.aaaaa);        map.put(big[0],new String[]{"wifi","热点"});        map.put(big[1],new String[]{"隐私","安全"});        //将控件添加到布局中去:        for (int i = 0; i < big.length; i++) {            String[]  a = map.get(big[i]);            TextView tv= new TextView(this);            ListView lv= new ListView(this);            ArrayAdapter aa=new ArrayAdapter(this,android.R.layout.simple_list_item_1, a);            tv.setText(big[i]);            lv.setAdapter(aa);            ll.addView(tv);            //调用内部类实现监听            new bb(a, lv);        }    }    class bb{        private String[] x;        public bb(final String x[],ListView lv){            this.x=x;            lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {                @Override                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                    Toast.makeText(LVActivity.this, x[position], Toast.LENGTH_SHORT).show();                }            });        }    }

更多相关文章

  1. Android(安卓)Studio下添加assets目录
  2. GitHub 上受欢迎的 Android(安卓)UI Library 整理二
  3. android inflate初探
  4. android 自定义ViewAnimator文字轮播广告控件——自定义控件学习
  5. Android基于HttpUrlConnection类的文件下载实例代码
  6. Paint常用方法介绍
  7. Eclipse下Android编程代码自动提示
  8. Android(安卓)RecyclerView +SnapHelper 实现横向滚动自动滚动到
  9. android输入框只能输入数字和小数点

随机推荐

  1. android 分享到 代码
  2. Android dependency 'com.android.suppor
  3. 自定义控件的开发
  4. Android学习 画图 (一) 球
  5. Android中播放mp3文件
  6. android 检查GPS是否开启,打开GPS设置界面
  7. Android中完全退出当前应用系统
  8. android Intent 短信群发
  9. android上设置ftp服务器
  10. Android项目打包遇com.android.builder.i