添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

通过适配器进行操作:

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;amp;lt;SjClass&amp;amp;gt; sData; private Context sContext; private int dataSize; private int sCurrentItem=0; ...
ListView没有直接修改item项字体大小的接口和设置,新建一个layout,里边放一个TextView并设置字体大小 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;TextView xmlns:android="http://schemas.android.com/apk/res/android" android:text="Te...