Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色
2014-09-05 18:50
1011 查看
今天作一个项目,就是做视频app,如果电视剧的话有许多剧集,点击一个item,播放不同的剧集,要有点击效果,并且默认是选择第一个。花费了一段时间,自己觉得有点难
度,现在和大家分享一下,下面是效果显示:
这个类是例子主类:
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;
}
}
欢迎光临资源下载页面......
度,现在和大家分享一下,下面是效果显示:
这个类是例子主类:
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;
}
}
欢迎光临资源下载页面......
相关文章推荐
- 在android中当点击ListView的item条目时,使item中的TextView的文字变成其他颜色作为标志
- android listview内的TextView会在点击item的时候灰变背景颜色
- android listview item点击时更改textview的颜色 代码中实现
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- Listview item里面的textView.setMovementMethod(LinkMovementMethod.getInstance()) 让listview 点击生效解决方法
- 关于listview显示问题,点击item选项areaBtn这个testview里面不显示areaBtn2的testview可以显示求大神帮忙。谢谢!!!
- android 自定义TextView支持微博功能后在ListView占用了Item点击的解决办法
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- Android中ListView点击和ListView的item里面的Button或ImageView不能同时生效问题的解决
- ListView中TextView和item背景点击改变颜色
- android 自定义TextView支持微博功能后在ListView占用了Item点击的解决办法
- android 自定义TextView支持微博功能后在ListView占用了Item点击的解决办法
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- Android recyclerView/listview的点击变色、点击换背景颜色
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- android listview的item里面的imageview的点击事件
- android中ListView点击和ListView的item里面的button或ImageView不能同时生效的解决
- android 自定义TextView支持微博功能后在ListView占用了Item点击的解决办法
- Android recyclerView/listview的点击变色、点击换背景颜色
- Android--GridView/ListView 点击Item修改Item背景 标识是当前选择项方法: