Android 高级控件(一)
来源:互联网 发布:网络支付的特点 编辑:程序博客网 时间:2024/06/06 00:06
一: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<String,List<String>>(); 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<String> 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<String,String[]> 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(); } }); } }
阅读全文
0 0
- Android 高级控件(一)
- 高级控件(一)
- Android高级--自定义控件一,优酷…
- Android 高级控件(二)
- Android 高级控件(三)
- IOS高级控件(一)
- android高级UI(一)
- Android高级技巧(一)
- Android自定义控件:动画类(六)----ValueAnimator高级进阶(一)
- Android—高级控件(一)自动完成文本框,下拉列表
- Android—高级控件(二)ListView
- Android高级控件
- Android 高级控件
- android高级控件ListView
- Android 高级控件
- Android高级控件
- Android的高级控件
- Android 高级控件
- YII2 同时使用RESTful和普通控制器
- 总结自身初学python使用chatterbot构建聊天机器人
- FAST角点检测算法(二)- 非极大值抑制筛选fast特征点
- 智能卡操作系统COS概述(可以顺带了解下)
- Android studio配置jni以及第一个jni程序
- Android 高级控件(一)
- 《统计学习方法》第4章 课后题答案
- webview常见的一些坑
- 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error
- Linux下死锁的调研
- 考研之同济
- Ladygod UESTC
- Tiny4412 Android5.0 定制media codecs相关的格式(二)
- TCP/IP协议卷一 契约 (部分内容)