通过适配器进行操作:
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()方法
结果图:通过适配器进行操作:public class SystemAdapter extends BaseAdapter { private ArrayList&amp;lt;SjClass&amp;gt; sData; private Context sContext; private int dataSize; private int sCurrentItem=0; ...
ListView没有直接修改item项字体大小的接口和设置,新建一个layout,里边放一个TextView并设置字体大小
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:text="Te...