ListView中TextView和item背景点击改变颜色
2016-09-22 15:44
549 查看
//listView 或者其他view中TextView点击改变颜色,并且默认第一个被点击, 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")); //在这里同时可以改变convertView的背景色 //convertView.setBackgroundResource(R.color.red); 这里实在color中写的 }else{ holder.textview.setTextColor(Color.parseColor("#404040")); //这里设置未被选中的item的颜色 //convertView.setBackgroundResource(R.color.color_fffff); } return convertView; } public class ViewHolder { public TextView textview; } }
相关文章推荐
- Android ExecutorService 的理解与使用
- Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形12. ast view (自是个160k的jar )22.1. 多条语句ast结构22.2. 变量定义 int b,c; 的ast结构22.3. 方法调用meth1(a=1,b=2,c=3); 的ast结构23. 误解的问题33.1. 语法书子能是个二叉树,实际上多叉树越好..33.2. 非要不个ast放到个s
- 支付宝支付成功后通知在微信打开的提示页面
- 和同事玩狼人杀有感
- 编译PredicateTest3 未能通过
- apk瘦身常用方法
- AsyncTask 必知必会
- makefile条件判断
- Atitit. 构造ast 语法树的总结attilax v2 q0f
- 第三篇 Android Bootloader 之 U-boot
- Unity工程里图片的RGB和Alpha通道的分离,以及显示所有带有Alpha通道贴图的Material
- fork() 和 vfork()
- Haskell/Modules
- 将用户添加到sudo的方法
- 小白學JAVA-----P1001
- Caffe 初学拾遗(七) Layer Catalogue (Vision Layer)
- Axure8.0基础教程(51-56)新手必须掌握的基础操作
- UIWebView的内存泄露问题解决方法
- iOS开发之<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0”/>
- Android 版 Facebook 登录