您的位置:首页 > 其它

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: