Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色
今天作一个项目,就是做视频app,如果电视剧的话有许多剧集,点击一个item,播放不同的剧集,要有点击效果,并且默认是选择第一个。花费了一段时间,自己觉得有点难
度,现在和大家分享一下,下面是效果显示:
这个类是例子主类:
<span style="font-size:14px;">public final class MainActivity extends Activity {
private GridView gridView;
private ArrayList< String> numberList=new ArrayList<String>();;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// "mMediaItem.mDirector---------------"+VideoDetailActivity_Phone.mediaItem.mDes);
gridView = (GridView) findViewById(R.id.video_detail_series_gridview);
for (int j = 0; j < 10; j++) {
numberList.add("" + (j+1));
}
final SeriesFragmentDataAdapter seriesAdapter = new SeriesFragmentDataAdapter(this,numberList);
gridView.setAdapter(seriesAdapter);
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
//这句是通知adapter改变选中的position
seriesAdapter.clearSelection(position);
//关键是这一句,激情了,它可以让listview改动过的数据重新加载一遍,以达到你想要的效果
seriesAdapter.notifyDataSetChanged();
}
});
}
}
这个类是例子adapter:
public class SeriesFragmentDataAdapter extends BaseAdapter {
private LayoutInflater inflater;
private ArrayList<String> numberList=new ArrayList<String>();
private int selectedPosition=0;
public SeriesFragmentDataAdapter(Context context,
ArrayList<String> numberList) {
inflater = LayoutInflater.from(context);
this.numberList = numberList;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return numberList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return numberList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
//这句是把listview的点击position,传递过来
public void clearSelection(int position) {
selectedPosition = position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.global_series_item, null);
holder.textview = (TextView) convertView
.findViewById(R.id.video_detail_series_item_text);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
if (numberList.get(position).length() > 0) {
holder.textview.setText(numberList.get(position));
}
//判断点击了哪个item,然后判断,让他的textview变色
if(selectedPosition==position){
holder.textview.setTextColor(Color.parseColor("#ff6501"));
}else{
holder.textview.setTextColor(Color.parseColor("#404040"));
}
return convertView;
}
public class ViewHolder {
public TextView textview;
}
}</span>
Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色的更多相关文章
- listview嵌套gridview,并实现grid元素部分显示以及点击展开与折叠
原文链接:http://blog.csdn.net/duguju/article/details/49538341 有时我们需要用GridView显示目录列表,有时甚至是二级的,即listview每一 ...
- Android中适用于ListView、GridView等组件的通用Adapter
今天随便逛逛CSDN,看到主页上推荐了一篇文章Android 高速开发系列 打造万能的ListView GridView 适配器,刚好这两天写项目自己也封装了相似的CommonAdapter,曾经也在 ...
- Android 监听ListView、GridView滑动到底部
// 监听listview滚到最底部 mIndexList.setOnScrollListener(new OnScrollListener() { @Override public void onS ...
- [安卓] 16、ListView和GridView结合显示单元实现自定义列表显示效果
List在各种手机应用中都有体现,是安卓UI设计的必修课. 本文将介绍在开发中如何利用ListView和GridView设计自定义列表. 下面分别是用ListView和GridView做的效果: 上面 ...
- Android列表视图ListView和ListActivity-android学习之旅(二十四)
ListView简介 ListView是android中常用的一种控件,创建ListView有两种方式: 1.在xml中使用ListView控件创建. 2.使用activity继承ListActivi ...
- Android ScrollView 嵌套ListView的替代方案
概要:本例仅提供替代思路. 原需求:实现下图这个布局 要求:头部菜单固定,实现Viewpager.中间的按钮菜单,底部的listview一起能够上下滚动. 做法: 把Viewpager.中间的按钮菜单 ...
- Android 给双ListView组织数据源
需求:现有这样一套原始数据{“A”,"B","C","D","B","A","B" ...
- Android圆弧形ListView的实现
本文带大家来实现ListView的圆弧形的分布排列,原理非常easy,就是依据ListView的每个Item的高度来对每个item进行偏移. 首先自己定义一个LinearLayout,这是ListVi ...
- Android——列表视图 ListView(一)Arrayadapter
一.ArrayAdapter 只显示文字 activitylistview_layout.xml <?xml version="1.0" encoding="utf ...
随机推荐
- output和returnvalue的作用
贴两段代码. 1> public int ExecuteNonQuery(string pro, MobileOrder or) { SqlParameter ...
- Qt之Qwt学习之安装
QWT+qtcreator 编译.安装使用 目录:一.Qwt简介 二.QWT编译 一.Qwt简介 QWT:Qt Widgets for Technical Applications,是开源的2D绘图库 ...
- DotSpatial 创建面状要素——含空洞
private void toolStripButton23_Click(object sender, EventArgs e) { //选择图层 FeatureSet fs = null; fs = ...
- js中(function(){…})()立即执行函数写法理解
文章摘自https://my.oschina.net/u/2331760/blog/468672?p={{currentPage+1}} 摘要: javascript和其他编程语言相比比较随意,所以j ...
- maven 下载 源码和javadoc 命令
摘要:我们在写代码时候,往往是想查看一下源码,看看源码的一些细节内容.一般情况下,在IDE(如eclipse)中近仅仅只需按住ctrl+ 点击对应的方法即可进入对应的源码部分.但是有些时候很多依赖项并 ...
- Alignment trap 解决方法 【转 结合上一篇
前几天交叉编译crtmpserver到arm9下.编译通过,但是运行的时候,总是提示Alignment trap,但是并不影响程序的运行.这依然很令人不爽,因为不知道是什么原因引起的,这就像一颗定时炸 ...
- matlab初学之plot颜色和线型
文章出处: http://jiangshuxia.9.blog.163.com/blog/static/3487586020116711375339/ 字母 颜色 标点 ...
- mongo 导入json数据
删除库以及导入库
- Consistent hashing —— 一致性哈希
原文地址:http://www.codeproject.com/Articles/56138/Consistent-hashing 基于BSD License What is libconhash l ...
- Java学习2 - JDK和JRE和JVM的区别_JDK的下载安装_环境变量配置
一 JDK和JRE和JVM的区别 Jdk: Java Development kit - Java 开发工具 JRE: Java Runtime Environment - java运行环境 JVM: ...