Android学习笔记(十二):ListView和GridView
来源:互联网 发布:视频编辑软件 慢动作 编辑:程序博客网 时间:2024/05/21 04:17
- ListView一行一般只显示一条数据(当然也可以显示多条数据,但是比较麻烦),比如用来显示新闻列表;
- GridView一行可以显示多条数据,比如图片的九宫格;
这两者的用法基本相同,都是通过Adapter来添加数据。 - 关于ListView一些常见的问题:
- 在ListView中添加EditView组件时,EditView无法获取焦点,解决办法如下:
- 在AndroidManifest.xml中你使用的Activity添加android:windowSoftInputMode=”adjustPan” />
- ListView 布局文件 加入属性 android:descendantFocusability=”beforeDescendants”;其中beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
- 还是EditView的问题,上下滑动页面时,Editview中的数据会乱掉,解决办法如下:
- 转自http://blog.csdn.net/xiaanming/article/details/8536231;
- 大概思路就是:重新实现Adapter,然后在getView方法中,给EditView添加监听事件addTextChangedListener,然后将EditText的值存到一个HashMap,当页面刷新后再将HashMap中的值取出放到对应的EditView中即可
- 下面是代码块Activity
- 在ListView中添加EditView组件时,EditView无法获取焦点,解决办法如下:
package com.xiaanming; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.ListView; public class ListViewActivity extends Activity { private ListView listView; private Adapter adapter; List<String> dataList = new ArrayList<String>(); //定义一个HashMap,用来存放EditText的值,Key是position HashMap<Integer, String> hashMap = new HashMap<Integer, String>(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //加入数据 dataList = addData(); //实例化ListView 并设置Adapter listView = (ListView)findViewById(R.id.listView); adapter = new Adapter(); listView.setAdapter(adapter); } //往ListView 里面添加数据的方法 private List<String> addData(){ List<String> list = new ArrayList<String>(); list.add("为你写诗"); list.add("我爱你"); list.add("傻瓜"); list.add("这就是爱"); list.add("我们在一起"); list.add("永远不分离"); list.add("想你的夜"); list.add("十年"); list.add("飞机场"); list.add("爱很简单"); list.add("普通朋友"); list.add("我们两"); list.add("富士三下"); list.add("离别"); list.add("们两"); return list; } //自定义Adapter class Adapter extends BaseAdapter{ @Override public int getCount() { return dataList.size(); } @Override public Object getItem(int position) { return dataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { String str = dataList.get(position); //下面这行,原文是R.layout.listview_item,但是他的布局中没有这个组件,应该是R.layout.listview convertView = LayoutInflater.from(getApplication()).inflate(R.layout.listview, null); final EditText editText = (EditText)convertView.findViewById(R.id.editText1); editText.setText(str); //为editText设置TextChangedListener,每次改变的值设置到hashMap //我们要拿到里面的值根据position拿值 editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count,int after) { } @Override public void afterTextChanged(Editable s) { //将editText中改变的值设置的HashMap中 hashMap.put(position, s.toString()); } }); //如果hashMap不为空,就设置的editText if(hashMap.get(position) != null){ editText.setText(hashMap.get(position)); } return convertView; } } }
0 0
- Android学习笔记(十二):ListView和GridView
- android 个人学习笔记------------GridView&ListView
- Android学习笔记(十二)
- Android学习笔记(二十二):关于ListView自动滚动一个位置
- Android的listview、gridview 笔记
- Android编程笔记 GridView、ListView和ScrollView的嵌套冲突
- Android学习之——ScrollView和ListView,GridView嵌套
- Android学习之ScollView嵌套ListView和GridView问题
- 解决Android学习之ScollView嵌套ListView和GridView问题
- Android之ListView和GridView
- Android 自定义ListView和GridView
- android listview,GridView 和 ScrollView
- Android学习 (十二) 常用布局之不简单的ListView
- android 项目学习随笔十二(ListView加脚布局)
- Android学习笔记(十二):Activity-Spinner
- Android学习笔记(十二)-WebService调用
- Android学习笔记(十二):Activity-Spinner
- Android开发秘籍学习笔记(十二)
- 进程&线程&死锁
- 简单DP
- hdu 水题 2041超级楼梯
- HDU3665Seaside(最短路径)
- POJ 1274 The Perfect Stall (匈牙利算法模板)
- Android学习笔记(十二):ListView和GridView
- [Scala]第一个Scala小程序
- HDU 3699--DFS+模拟
- spring_依赖注入(DI)
- 初识cache
- ACdream OJ 1063 平衡树
- Windows编程-创建窗口
- HDU1231最大的连续序列和
- LeetCode OJ-70. Climbing Stairs(爬楼梯问题)