结果图:
通过适配器进行操作:
public class SystemAdapter extends BaseAdapter {
private ArrayList<SjClass> sData;
private Context sContext;
private int dataSize;
private int sCurrentItem=0;
private boolean isEquals=false;
public SystemAdapter(ArrayList<SjClass> sData, Context sContext) {
this.sData = sData;
this.sContext = sContext;
}
@Override
public int getCount() { return sData.size(); }
@Override
public Object getItem(int position) { return sData.get(position); }
@Override
public long getItemId(int position) { return position; }
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView= LayoutInflater.from(sContext).inflate(R.layout.list_system,parent,false);
}
TextView time=(TextView)convertView.findViewById(R.id.time);
TextView device=(TextView)convertView.findViewById(R.id.number2);
TextView police=(TextView)convertView.findViewById(R.id.callPolice);
TextView rJieYang=(TextView)convertView.findViewById(R.id.rJieYang);
TextView temp=(TextView)convertView.findViewById(R.id.temp);
TextView ph=(TextView)convertView.findViewById(R.id.ph);
TextView orp=(TextView)convertView.findViewById(R.id.orp);
TextView np=(TextView)convertView.findViewById(R.id.np);
TextView zDu=(TextView)convertView.findViewById(R.id.zDu);
TextView dDao=(TextView)convertView.findViewById(R.id.dDao);
time.setText(sData.get(position).getTime());
rJieYang.setText(sData.get(position).getRJieYang());
temp.setText(sData.get(position).getTemp());
ph.setText(sData.get(position).getPh());
orp.setText(sData.get(position).getOrp());
np.setText(sData.get(position).getNp());
zDu.setText(sData.get(position).getZDu());
dDao.setText(sData.get(position).getDDao());
device.setText(sData.get(position).getDevice());
police.setText(sData.get(position).getPolice());
/*
* 通过数组找到要修改的对象,然后得到要修改的属性
* 最后判断,修改颜色
*
* 注意:一定要通过数组找, 通过TextView :String p=device.getText().toSting();没有用
*/
String p=sData.get(position).getPolice();
if("在线".equals(p)){
police.setTextColor(Color.parseColor("#0A8F0A"));//字体绿色
convertView.setBackgroundColor(Color.parseColor("#ffffff"));//背景色
}
else if("离线".equals(p)){
police.setTextColor(Color.parseColor("#991111"));//红色
convertView.setBackgroundColor(Color.parseColor("#ffffff"));
}
return convertView;
}
}
参考:https://blog.csdn.net/wshngyf/article/details/50975281
第二种:被点击时,颜色及背景色改变
public class SjSingleAdapter extends BaseAdapter {
private ArrayList<SjClass> ssData;
private Context sContext;
private int mCurrentItem=0;
private boolean isClick=false;
public SjSingleAdapter(ArrayList<SjClass> ssData, Context sContext) {
this.ssData = ssData;
this.sContext = sContext;
}
public SjSingleAdapter(){}
@Override
public int getCount() {
return ssData.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null) {
convertView = LayoutInflater.from(sContext).inflate(R.layout.sj_single, parent, false);
}
TextView sTime=(TextView)convertView.findViewById(R.id.stime);
TextView sName=(TextView)convertView.findViewById(R.id.name);
TextView sNumber=(TextView)convertView.findViewById(R.id.number);
sTime.setText(ssData.get(position).getTime());
sName.setText(ssData.get(position).getName());
sNumber.setText(ssData.get(position).getNumber());
/*
*这个进行判断mCurrentItem=行号,isClick是否点击
*/
if (mCurrentItem==position&&isClick){
convertView.setBackgroundColor(Color.parseColor("#FFEFDB"));
sTime.setTextColor(Color.parseColor("#9933cc"));
}else{
convertView.setBackgroundColor(Color.parseColor("#ffffff"));
sTime.setTextColor(Color.parseColor("#000000"));
}
return convertView;
}
//获取行号
public void setCurrentItem(int currentItem){
this.mCurrentItem=currentItem;
}
//是否点击
public void setClick(boolean click){
this.isClick=click;
}
}
Activity中代码:监听是否被点击, listView.setOnItemClickListener方法。
private void listClick(){
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
sAdapter.setCurrentItem(position);
sAdapter.setClick(true);
sAdapter.notifyDataSetChanged();
}
});
}
最后在listview初始化后 调用listClick()方法