ListView不同的文本视图 package com.example.sander.app; 导入android.app.Activity; 导入android.content.Context; 导入android.view.LayoutInflater; 导入android.view.view; 导入android.view.ViewGroup; 导入android.view.animation.animation; 导入android.view.animation.AnimationUtils; 导入android.widget.ArrayAdapter; 导入android.widget.TextView; 导入org.w3c.dom.Text; 导入java.util.ArrayList; 导入java.util.List; /** *由Sander于2017年4月15日创建。 */ 公共类ListAdapter扩展了ArrayAdapter{ 私人语境; 私有布尔useList=true; 公共ListAdapter(上下文、ArrayList项){ super(context,android.R.layout.simple\u list\u item\u 1,items); this.context=上下文; } 公共类视图持有者{ 文本视图标题文本; 文本视图编号文本; } 公共视图getView(int位置、视图转换视图、视图组父视图){ ViewHolder=null; 积分项目=(积分)获取项目(位置); View viewToUse=null; LayoutInflater mInflater=(LayoutInflater)context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE); if(convertView==null){ 如果(使用列表){ viewToUse=mInflater.充气(R.layout.list_项,空); } holder=新的ViewHolder(); holder.titleText=(TextView)viewUse.findViewById(R.id.hoods); 如果(item.getPoints()>=4.0){ holder.numberText=(TextView)viewUse.findViewById(R.id.number\u good); } else if(item.getPoints()3.0){ holder.numberText=(TextView)viewUse.findViewById(R.id.number\u平均值); } else if(item.getPoints()=4.0){ holder.numberTextGood.setText(String.valueOf(item.getPoints())+“/5.0”); }else if(item.getPoints()3.0){ holder.numberTextAverage.setText(String.valueOf(item.getPoints())+“/5.0”); }else if(item.getPoints()

ListView不同的文本视图 package com.example.sander.app; 导入android.app.Activity; 导入android.content.Context; 导入android.view.LayoutInflater; 导入android.view.view; 导入android.view.ViewGroup; 导入android.view.animation.animation; 导入android.view.animation.AnimationUtils; 导入android.widget.ArrayAdapter; 导入android.widget.TextView; 导入org.w3c.dom.Text; 导入java.util.ArrayList; 导入java.util.List; /** *由Sander于2017年4月15日创建。 */ 公共类ListAdapter扩展了ArrayAdapter{ 私人语境; 私有布尔useList=true; 公共ListAdapter(上下文、ArrayList项){ super(context,android.R.layout.simple\u list\u item\u 1,items); this.context=上下文; } 公共类视图持有者{ 文本视图标题文本; 文本视图编号文本; } 公共视图getView(int位置、视图转换视图、视图组父视图){ ViewHolder=null; 积分项目=(积分)获取项目(位置); View viewToUse=null; LayoutInflater mInflater=(LayoutInflater)context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE); if(convertView==null){ 如果(使用列表){ viewToUse=mInflater.充气(R.layout.list_项,空); } holder=新的ViewHolder(); holder.titleText=(TextView)viewUse.findViewById(R.id.hoods); 如果(item.getPoints()>=4.0){ holder.numberText=(TextView)viewUse.findViewById(R.id.number\u good); } else if(item.getPoints()3.0){ holder.numberText=(TextView)viewUse.findViewById(R.id.number\u平均值); } else if(item.getPoints()=4.0){ holder.numberTextGood.setText(String.valueOf(item.getPoints())+“/5.0”); }else if(item.getPoints()3.0){ holder.numberTextAverage.setText(String.valueOf(item.getPoints())+“/5.0”); }else if(item.getPoints(),android,listview,Android,Listview,我正试图根据物品的等级为其设置颜色,但不知何故它们不匹配。此外,当我订购它们时,它们不再起作用。我确实使用自定义ArrayList,以便物品相互连接。例如: 如果额定值低于3,则颜色应为红色,如果额定值高于4,则颜色应为绿色。如果额定值介于3和4之间,则颜色应为黄色。不应更改保持架视图引用,ViewHolder模式的整个要点是避免对findViewById进行过多的运行时调用 试试这个: package com.example.sander.app; import android.app.Ac

我正试图根据物品的等级为其设置颜色,但不知何故它们不匹配。此外,当我订购它们时,它们不再起作用。我确实使用自定义ArrayList,以便物品相互连接。例如:


如果额定值低于3,则颜色应为红色,如果额定值高于4,则颜色应为绿色。如果额定值介于3和4之间,则颜色应为黄色。

不应更改保持架视图引用,ViewHolder模式的整个要点是避免对findViewById进行过多的运行时调用

试试这个:

package com.example.sander.app;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import org.w3c.dom.Text;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Sander on 15-4-2017.
 */

public class ListAdapter extends ArrayAdapter<Points> {
    private Context context;
    private boolean useList = true;
    public ListAdapter(Context context, ArrayList items){
        super(context, android.R.layout.simple_list_item_1, items);
        this.context = context;
    }
    public class ViewHolder{
        TextView titleText;
        TextView numberText;
    }
    public View getView(int position, View convertView, ViewGroup parent){
        ViewHolder holder = null;
        Points item = (Points)getItem(position);
        View viewToUse = null;
        LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            if(useList){
                viewToUse = mInflater.inflate(R.layout.list_item, null);
            }
            holder = new ViewHolder();
            holder.titleText = (TextView)viewToUse.findViewById(R.id.hoods);

            if(item.getPoints() >= 4.0){
                holder.numberText = (TextView)viewToUse.findViewById(R.id.number_good);
            }
            else if(item.getPoints() < 4.0 && item.getPoints() > 3.0){
                holder.numberText = (TextView)viewToUse.findViewById(R.id.number_average);
            }
            else if(item.getPoints() < 3.0){
                holder.numberText = (TextView)viewToUse.findViewById(R.id.number_view);
            }
            viewToUse.setTag(holder);
        } else {
            viewToUse = convertView;
            holder = (ViewHolder) viewToUse.getTag();
        }
        holder.titleText.setText(item.getHoodName() + " (Wijk " + item.getHoodId() + ")");
        holder.numberText.setText(String.valueOf(item.getPoints()) + "/5.0");
        return viewToUse;
    }
}
公共类ListAdapter扩展了ArrayAdapter{
私人语境;
私有布尔useList=true;
公共ListAdapter(上下文、ArrayList项){
super(context,android.R.layout.simple\u list\u item\u 1,items);
this.context=上下文;
}
公共类视图持有者{
文本视图标题文本;
TextView编号textgood;
TextView数字textAverage;
TextView numberTextBad;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
积分项目=(积分)获取项目(位置);
View viewToUse=null;
LayoutInflater mInflater=(LayoutInflater)context.getSystemService(Activity.LAYOUT\u INFLATER\u SERVICE);
if(convertView==null){
viewToUse=mInflater.充气(R.layout.list_项,空);
holder=新的ViewHolder();
holder.titleText=(TextView)viewUse.findViewById(R.id.hoods);
holder.numberTextGood=(TextView)viewUse.findViewById(R.id.number\u good);
holder.numberTextAverage=(TextView)viewUse.findViewById(R.id.number\u average);
holder.numberTextBad=(TextView)viewToUse.findViewById(R.id.number\u bad);
viewToUse.setTag(支架);
}否则{
viewToUse=转换视图;
holder=(ViewHolder)viewtuse.getTag();
}
holder.titleText.setText(item.getHoodName()+“(Wijk”+item.getHoodId()+”);
//首先清除所有文本视图
持有者.numberTextGood.setText(“”);
holder.NumberExtAverage.setText(“”);
holder.numberTextBad.setText(“”);
//现在将值设置为正确的值
如果(item.getPoints()>=4.0){
holder.numberTextGood.setText(String.valueOf(item.getPoints())+“/5.0”);
}else if(item.getPoints()<4.0&&item.getPoints()>3.0){
holder.numberTextAverage.setText(String.valueOf(item.getPoints())+“/5.0”);
}else if(item.getPoints()<3.0){
holder.numberTextBad.setText(String.valueOf(item.getPoints())+“/5.0”);
}
返回视图使用;
}
}

您的代码没有任何部分试图为视图着色,请发布您正在尝试的代码,但该部分工作不正常。在XML部分中有。请发布代码
public class ListAdapter extends ArrayAdapter<Points> {
    private Context context;
    private boolean useList = true;
    public ListAdapter(Context context, ArrayList items){
        super(context, android.R.layout.simple_list_item_1, items);
        this.context = context;
    }
    public class ViewHolder{
        TextView titleText;
        TextView numberTextGood;
        TextView numberTextAverage;
        TextView numberTextBad;
    }
    public View getView(int position, View convertView, ViewGroup parent){
        ViewHolder holder = null;
        Points item = (Points)getItem(position);
        View viewToUse = null;
        LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            viewToUse = mInflater.inflate(R.layout.list_item, null);
            holder = new ViewHolder();
            holder.titleText = (TextView)viewToUse.findViewById(R.id.hoods);
            holder.numberTextGood = (TextView) viewToUse.findViewById(R.id.number_good);
            holder.numberTextAverage = (TextView) viewToUse.findViewById(R.id.number_average);
            holder.numberTextBad = (TextView) viewToUse.findViewById(R.id.number_bad);
            viewToUse.setTag(holder);
        } else {
            viewToUse = convertView;
            holder = (ViewHolder) viewToUse.getTag();
        }
        holder.titleText.setText(item.getHoodName() + " (Wijk " + item.getHoodId() + ")");

        // first clear all text-views
        holder.numberTextGood.setText("");
        holder.numberTextAverage.setText("");
        holder.numberTextBad.setText("");

        // now set the value in the proper one
        if(item.getPoints() >= 4.0){
            holder.numberTextGood.setText(String.valueOf(item.getPoints()) + "/5.0");
        } else if(item.getPoints() < 4.0 && item.getPoints() > 3.0){
            holder.numberTextAverage.setText(String.valueOf(item.getPoints()) + "/5.0");
        } else if(item.getPoints() < 3.0){
            holder.numberTextBad.setText(String.valueOf(item.getPoints()) + "/5.0");
        }
        return viewToUse;
    }
}