android listview 一行高亮
来源:互联网 发布:淘宝裂变是什么意思 编辑:程序博客网 时间:2024/06/05 06:41
listview这个控件,对于已经学过android的朋友是很熟悉的,应该不需要我在此来讲述下吧。
举个简单的例子来回顾下吧。我们知道在我们手机上,通讯录是这样布局的,一行分为姓名和对应的号码,或者是姓名在上,对应的号码在姓名的下面。我简要说明一下思路吧,在编码实现时,我们需要先创建LinearLayout(当然啦,也可以在xml文件中布局)对象和ListView对象,LinearLayout用来显示ListView,接着通过ListAdapter将获取到的通讯录数据与ListView链接起来;接着将ListAdapter添加到ListView中;最后将ListView添加到LinearLayout中,让屏幕显示LinearLayout,要处理ListView事件,需要为ListView视图添加setOnItemSelectedListener监听以及setOnItemClickListener监听。注意,不要忽略了权限哦。在API文档中,Dev Guide一栏下,看左侧栏目,往下拉,找到<uses-permission>就可以了,涵盖了android手机中所使用的所有权限。
以上是我们自己简单的创建的,但在开发中,我们有时需要自己来设计自己所需要的布局。这时就需要继承BaseAdapter,重写它的getView方法。代码如下参照下吧:
public class MyAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public MyAdapter(Context context) {
this.mInflater = LayoutInflater.from(context);
}
public int getCount() {
return mData.size();
}
public Object getItem(int arg0) {
return mData.get(arg0);
}
public long getItemId(int arg0) {
return arg0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.leftview, null);
holder.titleText = (TextView) convertView.findViewById(R.id.titleleftlist);
holder.infoText = (TextView) convertView.findViewById(R.id.infoleftlist);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.titleText.setText((String) mData.get(position).get("title"));
holder.infoText.setText((String) mData.get(position).get("info"));
if (position == selectItem) {
convertView.setBackgroundColor(Color.RED);
}
else {
convertView.setBackgroundColor(Color.TRANSPARENT);
}
//convertView.getBackground().setAlpha(80);
return convertView;
}
public void setSelectItem(int selectItem) {
this.selectItem = selectItem;
}
private int selectItem=-1;
}
}
很容易就能看出来有个position,只要拥有这个position,那很容易解决了。就是红色标注的if(){}else{}中的语句。简单吧。
当然我在开发MP3播放器的时候,想把当前播放的音乐进行高亮显示,目的就是为了能让用户能知道当前播放的是哪一首歌曲,采取上面的方法却不适合,总是给我出异常。最终我自己只要来实现的,效果就是我想要的,其实也很简单,代码如下:
listview_allmusic.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
for (int i = 0; i < arg0.getCount(); i++) {
View v = arg0.getChildAt(i);
v.setBackgroundColor(Color.TRANSPARENT);
}
arg1.setBackgroundColor(Color.RED);
MusicManager.getMusicManager().play(amlist.getList().get(arg2));
}
});
当然,还有中,我在开发某公司的android OA办公系统时,也加入这个技术,但我并不是采取以上的方法,我采取是传回来的接口数据的某个ID,对它进行判断,其实思路就是和上面一样,只不过,这时数据时已经写好的,我只是拿来调用的。
高亮并不是很难,关键是理清头绪,就简单多了。
- android listview 一行高亮
- listview点击一行高亮
- android listview 更新一行
- android listView 高亮显示
- android listview 只显示一行
- android下实现ListView高亮显示
- android下实现ListView高亮显示
- Android ListView item 选中高亮显示
- Android ListView 搜索关键字高亮显示
- Android ListView选中Item高亮
- android listView点击item,高亮显示
- Android ListView之高亮显示
- Android ListView 指定显示最后一行
- Android---ListView只显示一行的解决方案
- Android listview、gridView 只显示一行
- Android---ListView只显示一行的解决方案
- Android开发listview最后一行显示下划线
- CListCtrl高亮显示一行
- OAuth 学习(2) —— 自定义OAuth服务端(WCF REST数据访问控制)
- 状态检测防火墙知识
- Objective C 实现Singleton(单例)模式.
- GridView控件中的事件
- 站在IT的门口 ,我迷茫了
- android listview 一行高亮
- clinton esstwood总不会让我失望。
- PE文件说明
- 自学WPF--第三课透明与混色
- java7 新特性
- JSP与mysql的连接
- Windows与Linux系统下的库文件介绍
- 交换机的三种转发方式
- 分享我的书架:一个五年程序员的学习观