今天作一个项目,就是做视频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变色,点击另一个这个恢复原来颜色的更多相关文章

  1. listview嵌套gridview,并实现grid元素部分显示以及点击展开与折叠

    原文链接:http://blog.csdn.net/duguju/article/details/49538341 有时我们需要用GridView显示目录列表,有时甚至是二级的,即listview每一 ...

  2. Android中适用于ListView、GridView等组件的通用Adapter

    今天随便逛逛CSDN,看到主页上推荐了一篇文章Android 高速开发系列 打造万能的ListView GridView 适配器,刚好这两天写项目自己也封装了相似的CommonAdapter,曾经也在 ...

  3. Android 监听ListView、GridView滑动到底部

    // 监听listview滚到最底部 mIndexList.setOnScrollListener(new OnScrollListener() { @Override public void onS ...

  4. [安卓] 16、ListView和GridView结合显示单元实现自定义列表显示效果

    List在各种手机应用中都有体现,是安卓UI设计的必修课. 本文将介绍在开发中如何利用ListView和GridView设计自定义列表. 下面分别是用ListView和GridView做的效果: 上面 ...

  5. Android列表视图ListView和ListActivity-android学习之旅(二十四)

    ListView简介 ListView是android中常用的一种控件,创建ListView有两种方式: 1.在xml中使用ListView控件创建. 2.使用activity继承ListActivi ...

  6. Android ScrollView 嵌套ListView的替代方案

    概要:本例仅提供替代思路. 原需求:实现下图这个布局 要求:头部菜单固定,实现Viewpager.中间的按钮菜单,底部的listview一起能够上下滚动. 做法: 把Viewpager.中间的按钮菜单 ...

  7. Android 给双ListView组织数据源

    需求:现有这样一套原始数据{“A”,"B","C","D","B","A","B" ...

  8. Android圆弧形ListView的实现

    本文带大家来实现ListView的圆弧形的分布排列,原理非常easy,就是依据ListView的每个Item的高度来对每个item进行偏移. 首先自己定义一个LinearLayout,这是ListVi ...

  9. Android——列表视图 ListView(一)Arrayadapter

    一.ArrayAdapter 只显示文字 activitylistview_layout.xml <?xml version="1.0" encoding="utf ...

随机推荐

  1. 在CDH5.5.0上安装Phoenix1.2

    1.下载CLABS版本的Phoenix CLABS_PHOENIX-4.5.2-1.clabs_phoenix1.2.0.p0.774-el6.parcel和manifest.json文件 2.将文件 ...

  2. 【CSS3 入门教程系列】CSS3 Media Queries 实现响应式设计

    在 CSS2 中,你可以为不同的媒介设备(如屏幕.打印机)指定专用的样式表,而现在借助 CSS3 的 Media Queries 特性,可以更为有效的实现这个功能.你可以为媒介类型添加某些条件,检测设 ...

  3. IE关闭兼容性视图

    不知道什么时候,ie8的“兼容性视图设置”变成了灰色,如图:  今天通过设置组策略,终以解决了这个问题: ie8的兼容性视图设置灰色的解决办法:运行gpedit.msc--用户配置/计算机配置--管理 ...

  4. js页面跳转的方式

    js方式的页面跳转1.window.location.href方式    <script language="javascript" type="text/java ...

  5. 005-Scala数组操作实战详解

    005-Scala数组操作实战详解 Worksheet的使用 交互式命令执行平台 记得每次要保存才会出相应的结果 数组的基本操作 数组的下标是从0开始和Tuple不同 缓冲数组ArrayBuffer( ...

  6. linux输出 /dev/null

    在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1 "出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者g ...

  7. vs2012 opencv 配置

    一直没有学习C++,以为该语言太过old,所以要学习新的咚咚.一番学习归来,在进行OpenCV的时候,还是要用到这个C++.几次琢磨,终于能够配置好相关的开发环境和问题初步处理,有些内容得赶快记录下来 ...

  8. Extjs中引入JSP页面

    有的时候,我们可能要在某个panel中动态的引入一个jsp页面.但是ext中貌似没有这样的方法,所以这时候需要我们自定义一个组件来完成我们的需求. 1.首先定义我们的penel. Ext.define ...

  9. jsp中的正则表达式

    sp中${}----是EL表达式的常规表示方式目的是为了获取{}中指定的对象(参数.对象等)的值如:${user.name}<====>User user = (User)request( ...

  10. SWFUpload - JQuery上传插件

    首先,大家可以去SWF的官网下载相关Demo或者源码. 官方地址:http://code.google.com/p/swfupload/ 官方Demo:http://demo.swfupload.or ...