首页 > 代码库 > Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色
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变色,点击另一个这个恢复原来颜色
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。