here is the adapter class. When the adapter is only initialized, i.e. it runs for the first time, then it gets into the if condition in the getView method and everything is displayed normally. When you update the listview, falls into else. NPE is dropped on viewHolder.name_rate.setText(modelData.getName());

 public class AdapterModelData extends ArrayAdapter<ModelData> { private List<ModelData> modelDataList; private LayoutInflater inflater; private int layout; private Context mContext; public AdapterModelData(Context context, int resources, List<ModelData> modelData) { super(context, resources, modelData); this.layout = resources; this.modelDataList = modelData; this.inflater = LayoutInflater.from(context); } static class ViewHolder{ TextView name_rate; TextView rate; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { // LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(this.layout, parent, false); viewHolder = new ViewHolder(); viewHolder.name_rate = (TextView) convertView.findViewById(R.id.name_rate); viewHolder.rate = (TextView) convertView.findViewById(R.id.rate); } else{ viewHolder = (ViewHolder) convertView.getTag(); } ModelData modelData = modelDataList.get(position); viewHolder.name_rate.setText(modelData.getName()); viewHolder.rate.setText(Double.toString(modelData.getValue())); return convertView; } public void Refresh(){ this.notifyDataSetChanged(); } } 

    1 answer 1

    Is logical. You are trying to pull out the viewHolder = (ViewHolder) convertView.getTag() tag, but I don’t see you install it somewhere in the code.

    As a result, your viewHolder will be null .

    I understand that you forgot to set the tag in the if block:

     convertView.setTag(viewHolder); 

    ?

    • Blyn exactly .. I lost it. Initially, the question looked like this.stackoverflow.com/questions/751837 I would be glad if you also see a problem there. My ListView is not updated. The source data that is in the array shows. And I can not update in any way - Turalllb