adaptor.notifyDataSetChanged() не работает при настройке адаптера массива

У меня есть следующий код, который получает курсор для элемента, который пользователь выбирает в счетчик.

HOperListAdapter selectedWorkersAdapter = new HOperListAdapter(this, R.layout.listoperacompanante, R.id.lblLaNombre, hopers);
    selectedWorkersAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    lvMnOperAcompanantes.setAdapter(selectedWorkersAdapter);

    if (m_TipoTrabajo == OPERARIO ) {
        spOeManoDeObra.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                Object o = parent.getItemAtPosition(pos);
                selectedWorker = (o != null) ? (Cursor) o : null;
                btnAddOper.setEnabled(true);
            }     
        });
    }

И когда пользователь нажимает на кнопку, чтобы добавить выбранный элемент на счетчик::

public void clickBtnAddOper(View v) {
    if(selectedWorker != null){
        HoperBE h = new HoperBE();
        h.operario = selectedWorker.getInt(COLUMN_OPERARIO);
        h.nom = selectedWorker.getString(COLUMN_NOMBRE);
        h.operario_v9 = selectedWorker.getString(COLUMN_OPERARIO_V9);
        if(!hopers.contains(h)){
            hopers.add(h);
            HOperListAdapter adapter = (HOperListAdapter) lvMnOperAcompanantes.getAdapter();
            adapter.addAll(hopers);
            //adapter.add(h);
            adapter.notifyDataSetChanged();
        }
    }
}

и это класс адаптера:::

public class HOperListAdapter extends ArrayAdapter {

List<HoperBE> hopers;
Context context;
int layout, textToShow;

public HOperListAdapter(@NonNull Context context, int resource, int textViewResourceId, @NonNull List objects) {
    super(context, resource, textViewResourceId, objects);
    this.context = context;
    this.hopers = objects;
    this.layout = resource;
    this.textToShow = textViewResourceId;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    HOpersHolder viewHolder;
    LayoutInflater inflater = LayoutInflater.from(context);

    if(convertView == null){
        convertView = inflater.inflate(layout, null);
        viewHolder = new HOpersHolder(convertView);
        convertView.setTag(viewHolder);
    }else{
        viewHolder = (HOpersHolder) convertView.getTag();
    }

    if(!hopers.isEmpty() && hopers != null){
        viewHolder.oper.setText(hopers.get(position).nom);
    }

    return convertView;
}

private class HOpersHolder{
    TextView oper;

    public HOpersHolder(View view){
        oper = (TextView) view.findViewById(textToShow);
    }
}

}

Представление списка просто добавляет первый элемент, но не более того... как будто notifyDataSetChanged не работает.

0 ответов

Другие вопросы по тегам