Android项目——ListView的使用
2015-11-30 20:55
267 查看
ListView是android开发经常用的控件,对显示一条一条的数据很有用,下面介绍一下ListView的基本用法。
ListView的实现需要两个Layout。
(1)一个是布局文件:每一的显示样式的布局。
![](https://img-blog.csdn.net/20151130204013058?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(2)主框架文件:容纳List的文件
![](https://img-blog.csdn.net/20151130204114953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[align=center]
[/align]
[align=left]下面是activity中的代码:[/align]
[align=left]
[/align]
[align=left]
[/align]
ListView的实现需要两个Layout。
(1)一个是布局文件:每一的显示样式的布局。
(2)主框架文件:容纳List的文件
[align=center]
[/align]
[align=left]下面是activity中的代码:[/align]
public class find_teacher_activity extends ActionBarActivity { private List<String> list = new ArrayList<String>(); private List<String> list2 = new ArrayList<String>(); private List<String> list3 = new ArrayList<String>(); private Spinner mySpinner1, mySpinner2,mySpinner3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.find_teacher_main); mySpinner1 = (Spinner) findViewById(R.id.Spinner01); mySpinner2 = (Spinner) findViewById(R.id.Spinner02); mySpinner3 = (Spinner) findViewById(R.id.Spinner03); showSpinner1(); showSpinner2(); showSpinner3(); //////listview //listView显示 //获取ListView对象 ListView mListView = (ListView)findViewById(R.id.findcourselist); //下面是数据映射关系,mFrom和mTo按顺序一一对应 String[] mFrom = new String[]{"thisweek_people_name"}; int[] mTo = new int[]{R.id.thisweek_people_name}; //获取数据,这里随便加了10条数据,实际开发中可能需要从数据库或网络读取 List<Map<String,Object>> mList = new ArrayList<Map<String,Object>>(); Map<String,Object> mMap = null; for(int i = 0;i < 6;i++){ mMap = new HashMap<String,Object>(); mMap.put("thisweek_people_name", "马景甜"); mList.add(mMap); } //创建适配器 SimpleAdapter mAdapter = new SimpleAdapter(this,mList,R.layout.find_teacher_item,mFrom,mTo){ @Override public View getView(final int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); @SuppressWarnings("unchecked") final HashMap<String,Object> map = (HashMap<String, Object>) this.getItem(position); //获取相应View中的Checkbox对象 /*CheckBox checkBox = (CheckBox)view.findViewById(R.id.checked); checkBox.setChecked((Boolean) map.get("checked")); //添加单击事件,在map中记录状态 checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { map.put("checked", ((CheckBox)view).isChecked()); } }); */ return view; } }; mListView.setAdapter(mAdapter); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { @SuppressWarnings("unchecked") //获取被点击的item所对应的数据 HashMap<String,Object> map = (HashMap<String, Object>) parent.getItemAtPosition(position); //下面是你的其他事务逻辑 } }); } public void showSpinner1() { // 第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项 list.add("北京"); list.add("河北"); list.add("河南"); list.add("山东"); list.add("山西"); // 第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。 final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list); // 第三步:为适配器设置下拉列表下拉时的菜单样式。 simple_spinner_item adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); // 第四步:将适配器添加到下拉列表上 mySpinner1.setAdapter(adapter); // 第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中 /* 下拉菜单弹出的内容选项触屏事件处理 */ mySpinner1.setOnTouchListener(new Spinner.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { /* 将mySpinner 隐藏,不隐藏也可以,看自己爱好 */ // v.setVisibility(View.INVISIBLE); Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+111111111"); return false; } }); /* 下拉菜单弹出的内容选项焦点改变事件处理 */ mySpinner1 .setOnFocusChangeListener(new Spinner.OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { v.setVisibility(View.VISIBLE); Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+222222222"); } }); //mySpinner1.setTextColor(Color.WHITE); } //////// public void showSpinner2() { // 第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项 list2.add("男"); list2.add("女"); // 第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。 final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list2); // 第三步:为适配器设置下拉列表下拉时的菜单样式。 simple_spinner_item adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); // 第四步:将适配器添加到下拉列表上 mySpinner2.setAdapter(adapter); // 第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中 /* 下拉菜单弹出的内容选项触屏事件处理 */ mySpinner2.setOnTouchListener(new Spinner.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { /* 将mySpinner 隐藏,不隐藏也可以,看自己爱好 */ // v.setVisibility(View.INVISIBLE); Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+111111111"); return false; } }); /* 下拉菜单弹出的内容选项焦点改变事件处理 */ mySpinner2 .setOnFocusChangeListener(new Spinner.OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { v.setVisibility(View.VISIBLE); Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+222222222"); } }); //mySpinner1.setTextColor(Color.WHITE); } ///////// public void showSpinner3() { // 第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项 list3.add("计算机"); list3.add("金融"); // 第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。 final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list3); // 第三步:为适配器设置下拉列表下拉时的菜单样式。 simple_spinner_item adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); // 第四步:将适配器添加到下拉列表上 mySpinner3.setAdapter(adapter); // 第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中 /* 下拉菜单弹出的内容选项触屏事件处理 */ mySpinner3.setOnTouchListener(new Spinner.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { /* 将mySpinner 隐藏,不隐藏也可以,看自己爱好 */ // v.setVisibility(View.INVISIBLE); Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+111111111"); return false; } }); /* 下拉菜单弹出的内容选项焦点改变事件处理 */ mySpinner3 .setOnFocusChangeListener(new Spinner.OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { v.setVisibility(View.VISIBLE); Log.e("", "aaaaaaaaaaaaaaaaaaaaaaaa+222222222"); } }); //mySpinner1.setTextColor(Color.WHITE); } }
[align=left]
[/align]
[align=left]
[/align]
相关文章推荐
- Android安卓蓝牙开发
- Android IOS WebRTC 音视频开发总结(五三)-- 国内IM & RTC SDK列表
- AndroidStudio中使用plantUML
- LinearLayout中控件的置尾和置游问题
- Android ListView批量选择(全选、反选、全不选)
- Android之开源框架NineOldAndroids动画库
- Android ListView批量选择(全选、反选、全不选)
- Android禁止锁屏,保持常亮方法
- 利用animation-list逐帧动画创建Drawable序列并应于Android控件
- Android布局概览
- android 打开和关闭输入法
- Android编程-IntentService使用广播与Activity通信
- Android学习笔记-XML解析和JSON
- Android4.4 RIL的AT命令增加流程
- Android屏幕适配
- Android 获取手机GPS
- Android开发总结笔记 Menu(菜单) 1-1-18
- android开发之Notification_通知栏消息
- Android Button的3D触摸效果
- Android 解决BitmapFactory.decodeFile(file) 报OOM问题